** 什么是Web Services?**
- Web Services 是应用程序组件
- Web Services 使用开放协议进行通信
- Web Services 是独立的(self-contained)并可自我描述
- Web Services 可通过使用UDDI来发现
- Web Services 可被其他应用程序使用
- XML 是 Web Services 的基础
一言以蔽之:WebService是一种跨编程语言和跨平台的远程调用技术。
** 它如何工作?**
- 基础的 Web Services 平台是 XML + HTTP。
- HTTP 协议是最常用的因特网协议。
- XML 提供了一种可用于不同的平台和编程语言之间的语言。
** Web services 平台的元素:**
- SOAP (简易对象访问协议)
- UDDI (通用描述、发现及整合)
- WSDL (Web services 描述语言)
** WebService的简单实现 **
1、服务端程序
- 新建一个接口类,使用JDK的注解
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService(name="helloWS")
public interface IHelloWS {
@WebMethod
public String sayHello(String name);
}
- 实现类
package com.zlb.service;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService(name="helloWS")
public interface IHelloWS {
@WebMethod
public String sayHello(String name);
}
- JDK版 发布
//地址
String address = "http://127.0.0.1:8989/WebServices_service";
//java JDK版 发布
Endpoint.publish(address, new HelloWS());
- CXF版发布
//地址
String address = "http://127.0.0.1:8989/WebServices_service";
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
//设置Service Class
factory.setServiceClass(HelloWS.class);
factory.setAddress(address);
factory.create();
- 生成WSDL文档
在浏览器输入地址http://127.0.0.1:8989/WebServices_service/helloWS?wsdl 就可以了
2、客户端程序
- 利用JDK自带的wsimport命令生成客服端代码
启动cmd窗口,进入src文件夹下
输入命令:
wsimport -keep http://127.0.0.1:8989/WebServices_service/helloWS?wsdl
刷新客户端程序,就会有一个新的包出现
还有一种方法,就是将服务端生成的WSDL拷贝到一个文件,以wsdl命名 保存到客户端,利用JDK自带的wsimport命令:
wsimport -keep E:\WorkSpaceSSH\WebServices_client\src\HelloWS.wsdl
- 测试
//WSImport 方式
HelloWSService factory = new HelloWSService();
HelloWS ws = factory.getHelloWSPort();
ws.sayHello("tom");
服务端的程序需要一直启动着,否客户端会失败