调用免费的web service(天气预报,手机号归属地)案例(四)

来源:互联网 发布:网络公司简介范文 编辑:程序博客网 时间:2024/05/07 01:29

获取免费web服务网址http://www.webxml.com.cn/zh_cn/index.aspx

 

1. Google免费WebService,找到提供天气预报Webservice的网络地址

 http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx

 

2. 网址(http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx)加上?wsdl访问(http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl),使用浏览器访问

将wsdl文件保存到本地(如果服务端使用net写的,需修改wsdl)如下

 

 

 

 

 

      3. 创建java工程

 

 

 

 

 

4. 客户端编码方式访问

 借助命令工具自动生成客户端代码

D:\work-space\webservice_04_jaxws_first_client\src>wsimport -keep -p C:\Users\Mr
.li\Desktop\test.wsdl

 

 借助生成的代码编写请求代码

 

 

     5.编写客户端代码

 

 

 

 

public class testclient {public static void main(String[] args) {WeatherWS  WeatherWS=new WeatherWS();WeatherWSSoap   WeatherWSSoap=WeatherWS.getWeatherWSSoap();ArrayOfString  ArrayOfString=WeatherWSSoap.getWeather("上海", null);List<String> list=ArrayOfString.getString();for(String o:list){System.out.println(o);}MobileCodeWS MobileCodeWS=new MobileCodeWS();MobileCodeWSSoap MobileCodeWSSoap =MobileCodeWS.getMobileCodeWSSoap();String p=MobileCodeWSSoap.getMobileCodeInfo("15888888888", null);System.out.println(p);}}


 

 

 

说明: 直接生成客户端代码会抛异常, 无法生成客户端代码, 解决办法:

1. 将对应的wsdl文档保存到本地

2. 修改wsdl文档的部分内容:

 <s:element ref="s:schema" /><s:any /> 替换成 <s:any minOccurs="2" maxOccurs="2"/>

备注: 这个是Java调用net的webservice都有的问题

 

 

 

0 0