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