WebService

这几天一直在学习如何调用WebService。想写一个调用查询天气的WebService的Demo。

(天气查询WebService地址:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?WSDL

1,首先学习了CXF。在使用CXF\bin下的wsdl2java命令生成java类时,报一个“...no found s:schema.....”的错误,经网上查询,是因为无法解析xml下的ref属性。解决方法网上有2种,第一个:删除<s:element ref="s:schema"/>,第二个:将<s:element ref="s:schema"/><s:any/>变为<s:any minOccurs="2" maxOccurs="2"/>。

以上2种方法,我都亲自测试过,都可以通过命令生成java类。

我在公司时,jdk为1.6,当时生成java类后,通过new 生成类,然后通过生成类的方法,就可以调用webservice的方法了。

可是回到家,再次测试竟然通不过了。我百思不得其解,重复操作,怎样都有问题。我将在公司做好的demo导入笔记本中,测试是通过的。所以我个人认为是否跟jdk版本有关系呢。

折腾到11点多,决定更换别的方法调用webService。

2,Axi2调用WebService。

通过Axi2\bin下的命令,如下:

wsdl2java -uri http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?WSDL

直接生成java类,这里生成java类只有2个,跟cxf生成的不同。cxf生成了很多类。Axi2也会生成很多类,但是它把很多类都写成内部类了。所以外表看起来至生成了2个java文件。

将生成文件copy到对应包下,测试通过。一切ok

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值