** 什么是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
wsimport命令
刷新客戶端程序,就會有一個新的包出現
還有一種方法,就是將服務端生成的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");
服務端的程序需要一直啟動著,否客戶端會失敗