用eclipse调用远程webservice生成客户端代码

以前在调用webservice的时候都是自己老老实实用axis写代码,今天在网上看到在myeclipse里面可以根据wsdl接口地址自动生成接口调用客户端代码,于是我就想到在eclipse里面是不是也可以根据wsdl接口地址自动生成接口客户端调用代码呢?答案是肯定的,接下来是操作步骤:

1、file>new>other在弹出的New提示框内,输入web se。

用eclipse调用远程webservice生成客户端代码_第1张图片

 

2、选择步骤1图片中的“WebService Client”出现。

用eclipse调用远程webservice生成客户端代码_第2张图片

 

3、在步骤2中的Servicedefinition中输入接口地址,点击“Browse...”按钮,弹出

用eclipse调用远程webservice生成客户端代码_第3张图片

4、点击上面图片“OK”按钮,回到以下界面

用eclipse调用远程webservice生成客户端代码_第4张图片

5.点击“next”按钮,选择存放自动生成客户端代码的位置

用eclipse调用远程webservice生成客户端代码_第5张图片

6.点击Finish按钮,就生成了代码

用eclipse调用远程webservice生成客户端代码_第6张图片

 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、但是测试执行代码的时候报错如下:

用eclipse调用远程webservice生成客户端代码_第7张图片

引起这个问题原因就是接口地址不对,解决办法有两种:

         1、修改xxLocator.java中的xxPort_address为正确的接口地址。

          2、将步骤7中的代码改为:

                LggajjzzLocator lggajjzzLocator=new LggajjzzLocator();
                lggajjzzLocator.setEndpointAddress("xxPort", "接口地址");
                LggajjzzSoapBindingStub stud=(LggajjzzSoapBindingStub) lggajjzzLocator.getlggajjzzPort();

到这里在运行代码就OK啦!

 

你可能感兴趣的:(webservice)