vjame

优化代码是无止境的
随笔 - 65, 文章 - 9, 评论 - 26, 引用 - 0
数据加载中……

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 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







posted on 2011-07-13 09:41 lanjh 阅读(2188) 评论(0)  编辑  收藏 所属分类: Java Web


只有注册用户登录后才能发表评论。


网站导航: