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即可。
編寫客戶端程式碼
- publicclass TestClient {
- /**
- * @param args
- */
- publicstaticvoid main(String[] args) {
- try {
-
//首先建立例項,內部類,為每個方法建立一個內部類
- SayHelloStub shs=new SayHelloStub();
- SayHelloStub.SayHello sh=new SayHelloStub.SayHello();
- sh.setName("大兵哥");
- System.out.println(shs.sayHello(sh).get_return());
- } catch (Exception e) {
- e.printStackTrace();
- }
-
}
- }
new Web Service Client 。輸入wsdl地址,自動生成stub,proxy一些檔案。
再書寫客戶端程式碼。此方法比較方便。但建議初學者首先用方法1。
一路next即可。這樣會在你專案中生成
一系列java檔案
一般生成五個檔案,要是缺少了,和你services.xml中服務名字有一定的關係。我也設定好幾個才可以了。(我的設定為ttt)
客戶端測試程式碼如下:
- import java.rmi.RemoteException;
- import org.apache.axis2.AxisFault;
- import bingbing.TttPortTypeProxy;
- publicclass TestClient {
- /**
- * @param args
- */
- publicstaticvoid main(String[] args) {
- //代理物件
- TttPortTypeProxy proxy=new TttPortTypeProxy();
- try {
- System.out.println(proxy.sayHello("大兵哥"));
- } catch (RemoteException e) {
- e.printStackTrace();
- }
- }
- }
方法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
然後選擇工程
下面是自動生成的程式碼
客戶端測試程式碼:
- import bingbing.SayHello;
- import bingbing.TttStub;
- publicclass TestClient {
- /**
- * @param args
- */
- publicstaticvoid main(String[] args) {
- try {
- TttStub stub=new TttStub();
- SayHello hello=new SayHello();
- hello.setName("大兵哥");
- System.out.println(stub.sayHello(hello).get_return());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }