转自 http://blog.youkuaiyun.com/lener0611/article/details/19046571
天气预报公网 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
curl -O http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
rename WeatherWebService.asmx_wsdl WeatherWebService.wsdl
直接使用wsimport , 会报s:schema出错(jaxb不支持)
将 <s:element ref="s:schema" /> 删除
将<s:any />改成 <s:any minOccurs="2" maxOccurs="2"/>
wsimport -keep -p com.client -s src -d bin -verbose WeatherWebService.wsdl
WeatherClient.java
package com.client;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import com.client.*;
public class WeatherClient {
//
public static void main(String[] args) throws Exception {
if (args.length != 1){
System.out.println(" usage: java -cp ws.jar;bin com.client.WeatherClient city ");
return;
}
if (args[0] == null || "".equals(args[0])) return;
WeatherWebService ws = new WeatherWebService();
WeatherWebServiceSoap wsp = ws.getWeatherWebServiceSoap();
ArrayOfString aos = wsp.getWeatherbyCityName(args[0]);
for (String s : aos.getString()) {
System.out.println("---------------------------");
System.out.println(s);
}
}
}
编译 javac -cp ws.jar -d bin \jaxws-ri\test\src\com\client\WeatherClient.java
执行 java -cp ws.jar;bin com.client.WeatherClient 北京
本文介绍如何通过Java调用天气预报API获取指定城市的天气信息。首先从WebXML公共服务中下载并配置WeatherWebService.asmx?wsdl文件,然后通过修改wsdl文件使其符合Java导入工具wsimport的要求。最后展示了一个完整的Java示例程序,该程序能够接收城市名称参数并打印出相应的天气预报。

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



