序言:
在很多站点网页的最上方,我们经常会看到一个非常人性化的设计---天气预报。在一些网站上,我们输出一个手机号码,就能查出这个号码的归属地。虽然功能看起来不是特别复杂,但是要收集大量的数据。对于一个公司来说,单独去维护一些这样的功能显然是不合适的。但是通过WebService,就能轻易的实现这些功能
一、查找WEB服务
在网上,可以搜到大量的WEB服务。http://www.webxml.com.cn/zh_cn/index.aspx这里面收集了许多免费WEB服务,手机号码归属地和天气预报的wsdl文档都可以在这个网站上查询。
二、编写天气预报的WebService
复制wsdl的地址,现在eclipse里面的Web Service浏览器内看下是否能访问
在WeatherWSSoap里面有个getWeather方法,body点add输入一个城市名字,就会得到相应城市的天气状况。
在我们的项目上右击new >>>new file 建一个weather.wsdl
再次打开我们查询到的wsdl文档的页面, 右击查看源文件 。全部复制,粘贴到我们建好了的weather.wsdl文件中保存。这时可能会报错,没有报错的话, ctrl+f 查找<s:element ref="s:schema" /><s:any /> 替换成 <s:any minOccurs="2" maxOccurs="2"/>
package cn.com.webxml.test; import java.util.List; import cn.com.webxml.ArrayOfString; import cn.com.webxml.WeatherWS; import cn.com.webxml.WeatherWSSoap; public class WeatherWSTest { /** * @param args */ public static void main(String[] args) { WeatherWS weatherWS = new WeatherWS(); WeatherWSSoap weatherWSSoap = weatherWS.getWeatherWSSoap(); ArrayOfString weather = weatherWSSoap.getWeather("天津",null); List<String> list = weather.getString(); System.out.println(list); } }这里,我们需要调用一个方法,这个方法可以通过wsdl中<wsdl:service name="WeatherWS">标签获取
运行mian方法,查看控制台,就会得到相应城市的天气情况
三、编写归属地查询WebService
经过上面的demo,再写一个归属地查询的WebService应该是轻而易举了。经过测试,发现这次利用jdk通过url生成客户端代码,不会报错。在wsdl文档中<wsdl:service name="xxx">找到调用的类。