以前在調用webservice的時候都是自己老老實實用axis寫代碼,今天在網上看到在myeclipse裏面可以根據wsdl接口地址自動生成接口調用客戶端代碼,於是我就想到在eclipse裏面是不是也可以根據wsdl接口地址自動生成接口客戶端調用代碼呢?答案是肯定的,接下來是操作步驟:
1、file>new>other在彈出的New提示框內,輸入web se。
2、選擇步驟1圖片中的“WebService Client”出現。
3、在步驟2中的Servicedefinition中輸入接口地址,點擊“Browse...”按鈕,彈出
4、點擊上面圖片“OK”按鈕,回到以下界面
5.點擊“next”按鈕,選擇存放自動生成客戶端代碼的位置
6.點擊Finish按鈕,就生成了代碼
7.生成代碼之後,怎麼調用呢?
看到步驟6的以Locator和SoapBindingStud結尾的.java文件嗎,沒錯我們主要關注的就是xxLocator.java和xxSoapBindingStub.java
//先new一個xxLocator對象
LggajjzzLocator lggajjzzLocator=new LggajjzzLocator();
//調用xxLocator對象的getXXPort()方法生成xxSoapBindingStub對象
LggajjzzSoapBindingStub stud=(LggajjzzSoapBindingStub) lggajjzzLocator.getlggajjzzPort();
//然後就可以通過stud對象調用接口裏面各個方法了
8、但是測試執行代碼的時候報錯如下:
引起這個問題原因就是接口地址不對,解決辦法有兩種:
1、修改xxLocator.java中的xxPort_address爲正確的接口地址。
2、將步驟7中的代碼改爲:
LggajjzzLocator lggajjzzLocator=new LggajjzzLocator();
lggajjzzLocator.setEndpointAddress("xxPort", "接口地址");
LggajjzzSoapBindingStub stud=(LggajjzzSoapBindingStub) lggajjzzLocator.getlggajjzzPort();
到這裏在運行代碼就OK啦!