Java调用取得天气预报WebServices

Java调用取得天气预报WebServices


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  
- 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  [email protected]
 * 
@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







你可能感兴趣的:(Java调用取得天气预报WebServices)