使用wsdl2java工具生成天气预报客户端

1.环境和工具的准备。java环境阿帕奇cxf工具这两个身为开发的你肯定都有

2.在doc窗口找到阿帕奇cxf工具的bin目录。执行wsdl2java -frontend jaxws21 -d  代码生成路径 空格 wsdl文件地址 例如wsdl2java -frontend jaxws21 -d  C:\Users\jason\workspace\weatherReport\src e:\\WeatherWebService.wsdl生成的时候你会发现如果后面的wsdl地址你使用http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl来生成的时候会报错:undefined element declaration ‘s:schema’这是因为java中不支持这种写法。有的人说是因为这个wsdl服务器是.net的所以有不兼容的情况。算得上是一个bug吧。解决办法是将wsdl保存到本地,然后将所有的这种写法的标签删除或者用等价值替代。这样就可以生成了。

3.生成之后代码的使用

可以直接声明一个WeatherWebService 类来调用服务器端的方法获取天气。例如

WeatherWebService wws=new WeatherWebService();
ArrayOfString wwsr=wws.getWeatherWebServiceSoap().getWeatherbyCityName(“城市名称”);

当然里面不止这一种方法。你可以自己再研究

4.补充,如果到这里你出现No namespace on “html” element. You must send a SOAP request.的情况的话那么。很可能是你项目中引入了cxf的某些jar包导致的冲突的情况。具体什么类的冲突我还需要再进行研究。如果你出现了。可以删除引用的jar包即可解决。

5 thoughts on “使用wsdl2java工具生成天气预报客户端”

发表评论

电子邮件地址不会被公开。 必填项已用*标注