WebService

​ wsdl 本身也是一個xml文檔,我們通過wsdl 可以知道webservice如何調用

​ 2.結構

服務視圖,webservice的服務結點,它包括了服務端點

為每個服務斷點定義消息格式和協議細節

服務端點,描述web service 可被執行的操作方法,以及相關的消息,通過binding指向portType

定義一個操作方法的數據參數,可以有多個參數

定義web service 使用的全部數據類型

示例:公網天氣查詢開發

1.閱讀別人提供的wsdl

​ Service服務視圖:

WebService

portType服務端點:

WebService

2.使用wsimport生成客戶端調用代碼

​ 需要知道wsdl的地址

WebService

wsimport不支持soap1.2的客戶端代碼生成.

WebService

WebService

3.將生成代碼拷貝到工程中,開發客戶端

​ 1.

WebService

2.使用客戶端生成代碼調用服務端:

WebService

4.小結

這裡我們說的是客戶端生成代碼調用服務端的第一種使用方法,這種方法的缺點就是硬編碼

​ 將wehservice的地址封裝在生成代碼中,如果將來webservice地址改變,需要重新生成,修改客戶端代碼,不方便系統維護

客戶端開發的第二種方式

jaxws標準方法

1.使用jdk的service類調用webservice

WebService

2.使用jaxws標準方法調用公網天氣查詢

WebService

服務端的創建

1.SEI(Service Endpoint Interface)

​ 編寫SEI ,SEI在webservice中稱之為portType,在java中稱之為接口

public interface WeatherInterface{

public String queryWeather(String cityName);

}

2.SEI實現類

WebService

3.發佈WebService服務

WebService

4.驗證WebService服務是否發佈成功

​ 在webservice的地址後邊添加?wsdl, 查詢webservice的使用說明書內容是否完整,如果wsdl內容完整,表示webservice發佈成功

註解

​ 在我們自己開發服務端的時候,對應我們開發的服務端而生成的wsdl,在名稱的定義上並不符合我們本意,所有我們需要對其進行修改. 註解就可以幫助我們完成名稱的修改

1.@WebServer 定義服務,在public class上邊

​ 1.targetNamespace : 指定命名空間

​ 2.name : porType 的名稱

​ 3.portName : port的名稱

​ 4.serviceName : 服務名稱

​ 5.endpointInterface : SEI 接口地址,如果一個服務類實現了多個接口,只需要發佈一個接口方法,可以通過次註解指定要發佈的服務的接口

2.@WebMethod 定義方法,在公開方法上邊

​ operationName:方法名

​ exclude:設置為true表示此方法不是webservice方法,反之則表示webservice方法

3.@WebResult 定義返回值,在方法返回值前邊

​ name:返回結果值的名稱

4.@WebParam 定義參數,在方法參數前邊

​ name:指定參數的名稱

5.注意

​ 如果修改webservice的接口內容,比如 namespace portType 必須要重新生成客戶端調用碼

CXF

1.介紹

​ CXF是一種開發WebService的框架,可以幫助我們更快速靈活的開發.

2.環境配置

​ 下載cxf

​ 配置環境變量: CXF_HOME =cxf的目錄

​ Path=%CXF_HOME%\bin;

3.開發

​ 1.創建SEI及實現類

​ 2.發佈服務代碼

WebService

​ 3.使用cxf的wsdl2java工具生成客戶端調用代碼

​ 4.客戶端調用服務

WebService

4. 小結:

​ CXF編程實現webservice:

​ JaxWsServerFactoryBean: 發佈webservice服務

​ JaxWsProxyFactoryBean: 調用webservice服務端

CXF整合spring

1.介紹

​ cxf框架本身依賴spring,從官方下載cxf包中有spring的jar包

​ 上邊使用的JaxWsServerFactoryBean 和 JaxWsProxyFactoryBean ,改為spring配置方式

​ 發佈服務:使用spring和cxf整合的標籤

​ 客戶端調用服務:使用spring和cxf整合的標籤

​ 上邊的

2.開發

​ 1.創建工程,創建jar包

​ 2.開發SEI及實現類

​ 3.配置spring 的applicationContext.xml文件

​ 這樣要注意用到的三個參數 ,SEI 實現類 webservice地址

WebService

4.在web.xml中配置cxf和spring

​ cxf的servlet用於解析cxf發佈webservice

WebService

WebService

配置成功之後,啟動服務器就可以完成服務的發佈

​ 4.之後就是使用wsdl2java/wsimport 工具生成客戶端調用代碼

WebService

5.編寫appliactionContext.xml

WebService

6.測試是否成功

​ 我們可以回去客戶端bean ,然後調用服務端方法

WebService


分享到:


相關文章: