Java调用webservice天气预报(使用JDK自带的命令wsimport解析WSDL文件)
1、在通过dos命令下载xml文件且生成对应的Java API代码
在dos命令下输入
关于wsdl可以自行了解下webservice
wsimport -s d:\ http://ws.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
执行此命令,可能会报错,如图:
出错原因是由于解析s:schema有误,所以我们可以先把对应的xml文件下载到本地,在浏览器中输入http://ws.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl,直接ctrl+s保存到本地文件(xml文件),然后删除xml里面 <s:element ref=”s:schema” />代码,大概两处,最好搜索下不要删错了。
最后重新执行wsimport命令指向本地xml文件:
wsimport -s d:\ -p com.leo.weather D:\WeatherWebService.asmx.xml
-s代表生成的目录,-p表示目的文件的包路径
此时,webservice客户端代码文件生成成功:
2、通过生成的代码测试获取天气数据
新建一个普通的Java项目,把对应代码复制到项目中,写一个main方法测试:
public static void main(String[] args) throws Exception {
WeatherWebService weatherWebService = new WeatherWebService();
WeatherWebServiceSoap soap = weatherWebService.getWeatherWebServiceSoap();
System.out.println("--------weatherInfo--------");
ArrayOfString weatherInfo = soap.getWeatherbyCityName("上海");
for(String str : weatherInfo.getString()) {
System.out.println("weatherInfo: " + str);
}
}
运行结果如图:
可以看到对应的天气信息已经输出成功,对应的数据解释,可以在对应方法的代码里的注释上看到。
想要具体了解这个过程,可以先看看webservice原理,本人也是第一次了解。^.^