2014年8月6日 星期三

AXIS2-利用WSDL產生Client 端Stub 物件

1.先建立一個Dynamic Web Project,我的名稱為TestClientStub
2.在工具列上的Windows->Preference->Web Services-> Axis2 Preferences內,選擇自己Axis2的儲存位置

3.在專案名稱上選右鍵->New->Other 出現如下畫面,選擇 Web Service Client 後按下Next

3.在Service definition中選擇或輸入一個有WSDL的URL,我這邊輸入一個我已經架設好的Web Service 的URL: http://192.168.1.xxx/Test/services/APServiceService?wsdl ,後面的wsdl一定要有,否則無法讀取到WSDL定義檔; 選完後點選 Server runtime: Tomcat v6.0 Server,準備設定 Server runtime及Web service runtime



4.此步驟是要設定Client端的環境,因此基本上就是按照各位環境所安裝的Web Server及Web Service Runtime選擇就可以,我這邊client端的環境:Web Server是Tomcat 6.0 ,service runtime當然就是選Apache Axis2,確定選擇沒錯就可以按下OK->Next

5.接下來這個畫面顯示的項目基本上都不需要改變,Service Name是自動產生出來的stub名稱,Customer package name 為stub產生的目的package,而底下的Client mode是指定產生出來的stub在呼叫Web Service時所提供的method類型,按順序為:
1.產生一個支援同步與非同步的client code
2.僅產生同步的client code
3.僅產生非同步的client code
同步(Block)與非同步(Non-Block)的主要差別就在於: 同步是一個client端請求Web Service的服務後,必須等到目前執行的請求完成後,client才能再繼續請求下一個Web Service服務,非同步則不需要像同步等待前一個請求執行完成,即可以再發出下一個請求。


6.按下Finish後,自動產生的Client Stub如下,同時大家也可以看到Eclipse也自動幫我們把需要的jar檔都產生在WEB-INF/lib下了

7.這樣就可以利用自動產生出來的APServiceServiceStub來調用Web Service了

參考資料
http://blog.csdn.net/lifetragedy/article/details/7776907
http://axis.apache.org/axis2/java/core/api/org/apache/axis2/client/async/AxisCallback.html