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

来源:互联网 发布:画线路图用什么软件 编辑:程序博客网 时间:2024/05/22 17:15

以前在调用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啦!

 

1 0