Java调用天气预报的Webservice接口(使用JDK自带的命令wsimport解析WSDL文件,不需要引用额外的jar包)。
一个小例子, 项目结构:
其中com.gl.weather包里面的信息,是自动生成的。
先在百度上找到天气预报的webService的wsdl。http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
直接按ctrl+s保存为xml格式到本地文件(xml文件),然后打开xml文件, ctrl+f 搜索 s:schema,删除xml中的
<s:element ref="s:schema" />代码,有两处。
新建一个项目,项目名称:Test_05_Weather
把导出来的xml文件,放入项目的src目录下面。
在dos命令窗口中输入:
wsimport -s F:\Workspaces\Test_05_Weather\src -p com.leo.weather
-keep F:\Workspaces\Test_05_Weather\src\WeatherWebService.xml
-s:代表生成文件所在的目录 -p:代表生成的文件的包路径 -keep:xml文件路径执行成功会出现如上图所示。
创建一个Test的测试类:
package com.gl.test; import com.gl.weather.ArrayOfString; import com.gl.weather.WeatherWebService; import com.gl.weather.WeatherWebServiceSoap; public class Test { public static void main(String[] args) { WeatherWebService weatherWebService = new WeatherWebService(); WeatherWebServiceSoap soap = weatherWebService.getWeatherWebServiceSoap(); ArrayOfString weatherbyCityName = soap.getWeatherbyCityName("上海"); for (String st : weatherbyCityName.getString()) { System.out.println(st); } } }
执行main方法,得到:
CompilerOracle: exclude org/hibernate/cfg/annotations/SimpleValueBinder.setType 直辖市 上海 58367 58367.jpg 2018/4/18 10:09:35 14℃/23℃ 4月18日 晴转多云 南风小于3级转东南风3-4级 0.gif 1.gif 今日天气实况:气温:18℃;风向/风力:东风 1级;湿度:58%;紫外线强度:中等。空气质量:中。 紫外线指数:中等,涂擦SPF大于15、PA+防晒护肤品。 健臻·血糖指数:较易波动,血糖较易波动,注意监测。 感冒指数:较易发,温差较大,较易感冒,注意防护。 穿衣指数:较舒适,建议穿薄外套或牛仔裤等服装。 洗车指数:较适宜,无雨且风力较小,易保持清洁度。 空气污染指数:中,易感人群应适当减少室外活动。 16℃/26℃ 4月19日 晴转多云 东南风3-4级转4-5级 0.gif 1.gif 17℃/25℃ 4月20日 晴转多云 东风5-6级转东北风4-5级 0.gif 1.gif 上海简称:沪,位置:上海地处长江三角洲前缘,东濒东海,南临杭州湾,西接江苏,浙江两省,北界长江入海,正当我国南北岸线的中部,北纬31°14′,东经121°29′。面积:总面积7823.5平方公里。人口:人口1000多万。上海丰富的人文资源、迷人的城市风貌、繁华的商业街市和欢乐的节庆活动形成了独特的都市景观。游览上海,不仅能体验到大都市中西合壁、商儒交融、八方来风的氛围,而且能感受到这个城市人流熙攘、车水马龙、灯火璀璨的活力。上海在中国现代史上占有着十分重要的地位,她是中国共产党的诞生地。许多震动中外的历史事件在这里发生,留下了众多的革命遗迹,处处为您讲述着一个个使人永不忘怀的可歌可泣的故事,成为包含民俗的人文景观和纪念地。在上海,每到秋祭,纷至沓来的人们在这里祭祀先烈、缅怀革命历史,已成为了一种风俗。大上海在中国近代历史中,曾是风起云涌可歌可泣的地方。在这里荟萃多少风云人物,散落在上海各处的不同住宅建筑,由于其主人的非同寻常,蕴含了耐人寻味的历史意义。这里曾留下许多革命先烈的足迹。瞻仰孙中山、宋庆龄、鲁迅等故居,会使您产生抚今追昔的深沉遐思,这里还有无数个达官贵人的住宅,探访一下李鸿章、蒋介石等人的公馆,可以联想起主人那段显赫的发迹史。