用java實現webservice客戶端調用

目前基於java實現webservice客戶端調,用的比較多的提供高級接口的封裝soap的開源軟件有axis,xifre,jaxws,cxf,既提供webservice的發佈,又提供webservice的調用的stub生成。使用高層接口,不需要知道SOAP和XML的任何信息,就可以生成和使用一個WebService。對於已經給定的webservice服務端,來完成調用。

 

  如何調用Web Services
  
  客戶端:取得服務端的服務描述文件WSDL,解析該文件的內容,瞭解服務端的服務信息,以及調用方式。根據需要,生成恰當的SOAP請求消息(指定調用的方法,已經調用的參數),發往服務端。等待服務端返回的SOAP迴應消息,解析得到返回值。


  服務端:生成服務描述文件,以供客戶端獲取。接收客戶端發來的SOAP請求消息,解析其中的方法調用和參數格式。根據WSDL和WSML的描述,調用相應的對象來完成指定功能,並把返回值放入SOAP迴應消息返回給用戶。

 

使用  cxf 封裝soap的開源框架
wsdl2java.bat -p packagename -ant -cliient -d outputdir wsdlurl

 

 

由於各開源軟件對soap協議解析方式不同,生成的的客戶端也不同。另外對soap版本可能不匹配,尤其是對於異構的系統來說,兼容性有可能不太好。

 


如果用這些工具生成的工具無法實現通訊,只能在客戶端,首先要創建一個Http Connector對象,負責HTTP連接。設定Connector的一些頭部信息,比如EndPoinURL和SoapAction等。如果網絡連接需要使用代理服務器,那也要在這裏設定相關的信息。接着創建SoapSerializer對象,用於生成Soap消息。按照WSDL裏定義,把所有參數按順序序列化,得到一個完整的SOAP請求消息。該Soap消息,作爲Payload通過HttpConnector被髮送到服務端。最後,生成一個SoapReader對象,負責讀取服務端返回的SOAP消息,取得其中的返回值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章