1、天气预报web services地址
http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl用浏览器打开此地址,保存页面为Weather.xml
2、新建一个java工程 webservices
建立包名 com.test.ws
将Weather.xml拷贝到src目录下
3、编写批处理
WSDL-SQUARED.CMD,使用wsdj2java生成客户端调用代码
set AXIS_HOME=D:\axis-1_4
set CLASSPATH=.;%AXIS_HOME%\lib\axis.jar;%AXIS_HOME%\lib\axis-ant.jar;%AXIS_HOME%\lib\commons-discovery-0.2.jar;%AXIS_HOME%\lib\commons-logging-1.0.4.jar;%AXIS_HOME%\lib\jaxrpc.jar;%AXIS_HOME%\lib\log4j-1.2.8.jar;%AXIS_HOME%\lib\saaj.jar;%AXIS_HOME%\lib\wsdl4j-1.5.1.jar
java org.apache.axis.wsdl.WSDL2Java -p com.test.ws Weather.xml
首先需要配置AXIS的HOME路径,后面是指定输出包名,以及指定wsdl描述文件,也可以是前面提到的webservice地址
4、打开命令行,切换目录到工程的src文件下,输入WSDL-SQUARED执行批处理文件
5、刷新工程,我们可以看到在com.test.ws目录下生成了很多java代码
6、新建测试类
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import com.strongit.ws.WeatherWS;
import com.strongit.ws.WeatherWSLocator;
import com.strongit.ws.WeatherWSSoap_PortType;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) Strongit 2011</p>
* <p>Company: </p>
* @author lanjinghui@foxmail.com
* @version 1.0
*/
public class WeatherClient {
/**
* @Description 方法实现功能描述
* @author lanjh 下午10:04:23
* @return void
* @throws 抛出异常说明
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
WeatherWS weatherWS = new WeatherWSLocator();
try {
WeatherWSSoap_PortType weatherWSSoap_PortType = weatherWS.getWeatherWSSoap();
// String[] provs = weatherWSSoap_PortType.getRegionProvince();
// for(String p : provs){
// System.out.println(p);
// }
//
//
// System.out.println("------------------------------------");
//
//
// String[] citys = weatherWSSoap_PortType.getSupportCityString("江西");
// for(String c : citys){
// System.out.println(c);
// }
System.out.println("------------------------------------");
//南昌,2117
String[] weather = weatherWSSoap_PortType.getWeather("南昌", null);
for(String w : weather){
System.out.println(w);
}
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
7、运行结果
- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
------------------------------------
江西 南昌
南昌
2117
2011/07/13 09:38:13
今日天气实况:气温:26℃;风向/风力:东北风 2级;湿度:82%
空气质量:良;紫外线强度:中等
穿衣指数:天气较热,建议着短裙、短裤、短套装、T恤等夏季服装。年老体弱者宜着长袖衬衫和单裤。
感冒指数:各项气象条件适宜,发生感冒机率较低。但请避免长期处于空调房间中,以防感冒。
运动指数:白天有降水,建议在户内进行轻度运动。若坚持户外运动,请选择合适的运动,并携带雨具。
洗车指数:不宜洗车,未来24小时内有雨,如果在此期间洗车,雨水和路上的泥水可能会再次弄脏您的爱车。
晾晒指数:有降水,不适宜晾晒。如果非晾晒不可,请在室内准备出充足的空间。
旅游指数:有雷阵雨,稍热,微风,旅游指数一般,外出请尽量避开雷阵雨时间,若外出,请注意防雷并携带雨具。
路况指数:有小雨,路面潮湿,车辆易打滑,请小心驾驶。
舒适度指数:白天虽然有雨,但仍无法削弱较高气温带来的暑意,同时降雨造成湿度加大会您感到有些闷热,不很舒适。
空气污染指数:气象条件有利于空气污染物稀释、扩散和清除,可在室外正常活动。
紫外线指数:属中等强度紫外线辐射天气,外出时建议涂擦SPF高于15、PA+的防晒护肤品,戴帽子、太阳镜。
7月13日 雷阵雨
26℃/31℃
无持续风向微风
4.gif
4.gif
7月14日 阵雨
26℃/31℃
无持续风向微风
3.gif
3.gif
7月15日 阵雨
26℃/31℃
无持续风向微风
3.gif
3.gif
7月16日 阵雨
26℃/31℃
无持续风向微风
3.gif
3.gif
7月17日 阵雨
26℃/31℃
无持续风向微风
3.gif
3.gif