1. 程式人生 > >webservice客戶端呼叫方式

webservice客戶端呼叫方式

這一篇介紹客戶端呼叫方式
方法1)手動寫客戶端程式碼

           配置環境變數:AXIS2_HOME     C:\Users\abc\Downloads\axis2-1.6.2-bin\axis2-1.6.2

           path 增加 %AXIS2_HOME%\bin

          cd  myaxis(專案所在的目錄)。
          執行:wsdl2java -uri http://localhost:9080/axis2/services/sayHello?wsdl -p ws-s -o myaxis
          -p引數指定了生成的Java類的包名
         -o引數指定了生成的一系列檔案儲存的根目錄

         myaxis是我專案名稱。

         注意若這裡出現了一個問題:生成的SayHelloStub.java報編譯錯 org.apache.axis2.client.Stub找不到

        需要引入axis2-1.6.2\bin所有的jar即可。

        編寫客戶端程式碼

  1. publicclass TestClient {  
  2.     /** 
  3.      * @param args 
  4.      */
  5.     publicstaticvoid main(String[] args) {  
  6.         try {  
  7.             //首先建立例項,內部類,為每個方法建立一個內部類
  8.             SayHelloStub shs=new SayHelloStub();  
  9.             SayHelloStub.SayHello sh=new SayHelloStub.SayHello();  
  10.             sh.setName("大兵哥");  
  11.             System.out.println(shs.sayHello(sh).get_return());  
  12.         } catch (Exception e) {  
  13.             e.printStackTrace();  
  14.         }  
  15.     }  
  16. }  
方法3)eclipse自動生成客戶端
           new Web Service Client 。輸入wsdl地址,自動生成stub,proxy一些檔案。
           再書寫客戶端程式碼。此方法比較方便。但建議初學者首先用方法1。

          

一路next即可。這樣會在你專案中生成

一系列java檔案


            一般生成五個檔案,要是缺少了,和你services.xml中服務名字有一定的關係。我也設定好幾個才可以了。(我的設定為ttt)

客戶端測試程式碼如下:   

  1. import java.rmi.RemoteException;  
  2. import org.apache.axis2.AxisFault;  
  3. import bingbing.TttPortTypeProxy;  
  4. publicclass TestClient {  
  5.     /** 
  6.      * @param args 
  7.      */
  8.     publicstaticvoid main(String[] args) {  
  9.                  //代理物件
  10.                  TttPortTypeProxy proxy=new TttPortTypeProxy();  
  11.         try {  
  12.             System.out.println(proxy.sayHello("大兵哥"));  
  13.         } catch (RemoteException e) {  
  14.             e.printStackTrace();  
  15.         }  
  16.     }  
  17. }  
程式碼很簡單。不是嗎?

方法4)下載eclipse axis的client,server外掛

下載eclipse axis2外掛
http://mirror.bjtu.edu.cn/apache/axis/axis2/java/core/1.6.2/

我這裡下載的是1.6.2/版本的axis2-eclipse-codegen-wizard.zip和axis2-eclipse-service-archiver-wizard.zip
(至於安裝到eclipse我不做累贅說明了。可參考網上資料)

安裝成功後選擇Axis2 Code Generator

然後選擇工程

下面是自動生成的程式碼


客戶端測試程式碼:

  1. import bingbing.SayHello;  
  2. import bingbing.TttStub;  
  3. publicclass TestClient {  
  4.     /** 
  5.      * @param args 
  6.      */
  7.     publicstaticvoid main(String[] args) {  
  8.         try {  
  9.             TttStub stub=new TttStub();  
  10.             SayHello hello=new SayHello();  
  11.             hello.setName("大兵哥");  
  12.             System.out.println(stub.sayHello(hello).get_return());  
  13.         } catch (Exception e) {  
  14.             e.printStackTrace();  
  15.         }  
  16.     }  
  17. }