一、获取WSDL文件
从网上可以搜到一些提供各种服务的免费接口,比如获取天气预报的接口:
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
在浏览器中打开上面的网址,然后ctrl+s保存为WeatherWebService.wsdl文件,将该文件加入到你的Java工程中。
二、引入必须的Jar包
webservice服务是需要引入axis的jar包的,如下图:
如果没有引入saaj-*.jar,可能会报错。
三、生成客户端Java代码
右键点击WeatherWebService.wsdl文件,找到Web Service项,点击Generate Client子菜单。如下图:
在弹出的窗口中点击Next,如下图:
选择生成的代码要防止的包位置,如下图:
点击完成,稍等片刻,就能看到生成的Java代码了。如下图:
四、测试代码
package cn.com.WebXml;import java.rmi.RemoteException;import javax.xml.rpc.ServiceException;public class WeatherDemo { public static void main(String[] args) throws ServiceException, RemoteException { WeatherWebServiceLocator locator = new WeatherWebServiceLocator(); WeatherWebServiceSoapStub stub = (WeatherWebServiceSoapStub) locator.getPort(WeatherWebServiceSoapStub.class); String[] weatherInfo = stub.getWeatherbyCityName("南京"); for (String info : weatherInfo) { System.out.println(info); } }}
测试结果如下图:
五、遇到的问题
IWAB0503E Unable to update Java build path
关于这个问题,stackoverflow.com上有一个提问:
解决方案来自于:
在使用sts生成客户端Java代码的时候,最后一步报了这个错误,这个是因为eclipse中包含多于一个的saaj插件引起的。点击sts的help菜单,找到子菜单项About Spring Tool Suite,在弹出的窗口中点击左下角的Instation Details按钮,如下图:
在弹出的窗口中切换到Plug-ins标签页,在输入框中输入saaj,过滤结果如下图:
可以看到,sts安装了两个SAAJ插件。此时到sts安装目录下的plugins目录中搜索"javax.xml.soap",会出现两个结果,如下图:
备份后删除其中一个,重启sts即可。
版权声明:本文为博主原创文章,未经博主允许不得转载。