由于最近项目需要用到实时天气查询,于是就想起来使用webService来获取天气接口。但是在使用的过程中,遇到了各种坑,这里稍微整理下
先给出项目文件结构
首先在百度上找到了webService的wsdl。http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
将此网站的的内容全部复制到一个wsdl的文件中,这里我放在自身项目中根目录下。
将文件中的 <s:element ref="s:schema"/> <s:any/> 全部替换成 <s:any minOccurs="2" maxOccurs="2"/>
同时将所有的备注信息(‘<a href="http://www.webxml.com.cn/" target="_blank">WebXml.com.cn</a> <strong>天气预报 Web 服务,数据每2.5小时左右’) 全部删除掉。
使用 wsimport -s . yourpath/weather.wsdl 我这里使用的命令就在项目的src目录中,会自动生成需要的java文件到src下
public class ClientTest {
public static void main(String[] args) {
WeatherWebService service = new WeatherWebService();
WeatherWebServiceSoap soap = service.getWeatherWebServiceSoap();
ArrayOfString weatherbyCityName = soap.getWeatherbyCityName("成都");
System.out.println(weatherbyCityName.getString());
}
}
还有很多方法,通过方法名就能知道具体信息。

项目需求实现实时天气查询,通过webService获取天气数据。过程中遇到问题,主要涉及wsdl文件处理,包括替换元素、删除注释,并使用wsimport生成Java文件。调用方法获取天气信息。
267

被折叠的 条评论
为什么被折叠?



