zoukankan      html  css  js  c++  java
  • java调用第三方的webservice应用实例

    互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示。

    一些常用的webservice网站的链接地址:         http://www.tuicool.com/articles/iIfqma

    一:调用免费的web service获取天气预报信息    

    1.第三方服务地址

    http://www.webxml.com.cn/WebServices/WeatherWebService.asmx 

      http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

    2.生成本地桩(借助wsimport命令工具自动生成客户端代码)

     打开命令行窗口,切换到项目的src目录,执行"wsimport -keep http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl"生成客户端代码,如下图所示:

     

     运行结果显示,使用wsimport工具直接生成客户端代码会抛异常, 无法生成客户端代码, 只是因为我们要调用的WebService是用.net写的,这个是Java调用net的webservice都有的问题,这个问题的解决办法如下:

    1. 将对应的wsdl文档保存到本地

      

      2、修改wsdl文档的部分内容: <s:element ref="s:schema" /><s:any /> 替换成 <s:any minOccurs="2" maxOccurs="2"/>

      

      再次执行wsimport生成代码,这次使用保存在本地的WeatherWS.wsdl文件来进行生成,如下图所示:

      

      从执行结果显示,这一次可以正常生成代码了,刷新一下src目录,就可以看到生成的代码了,如下图所示:

      

     3.借助生成的代码编写请求代码

    package me.gacl.ws.client;
    
    import java.util.List;
    
    import org.junit.Test;
    
    import cn.com.webxml.ArrayOfString;
    import cn.com.webxml.WeatherWebService;
    import cn.com.webxml.WeatherWebServiceSoap;
    
    public class WeatherWSClient {
        public static void main(String[] args) {
            // 创建一个WeatherWS工厂
            WeatherWebService factory = new WeatherWebService();
            // 根据工厂创建一个WeatherWSSoap对象
            WeatherWebServiceSoap weatherWSSoap = factory
                    .getWeatherWebServiceSoap();
            // 调用WebService提供的getWeather方法获取南宁市的天气预报情况
            ArrayOfString weatherInfo = weatherWSSoap.getWeatherbyCityName("上海");
            List<String> lstWeatherInfo = weatherInfo.getString();
            // 遍历天气预报信息
            for (String string : lstWeatherInfo) {
                System.out.println(string);
                System.out.println("------------------------");
            }
        }
    
        
        //支持的行政市
        @Test
        public void Test() {
            // 创建一个WeatherWS工厂
            WeatherWebService factory = new WeatherWebService();
            // 根据工厂创建一个WeatherWSSoap对象
            WeatherWebServiceSoap weatherWSSoap = factory
                    .getWeatherWebServiceSoap();
            // 调用WebService提供的getWeather方法获取南宁市的天气预报情况
            ArrayOfString weatherInfo = weatherWSSoap.getSupportProvince();
            List<String> lstWeatherInfo = weatherInfo.getString();
            // 遍历天气预报信息
            for (String string : lstWeatherInfo) {
                System.out.println(string);
                System.out.println("------------------------");
            }
        }
    
    }

     测试结果:

    直辖市
    ------------------------
    上海
    ------------------------
    58367
    ------------------------
    58367.jpg
    ------------------------
    2017-6-4 10:50:51
    ------------------------
    21℃/28------------------------
    6月4日 晴转多云
    ------------------------
    东风微风
    ------------------------
    0.gif
    ------------------------
    1.gif
    ------------------------
    今日天气实况:气温:26℃;风向/风力:东北风 3级;湿度:53%;紫外线强度:强。空气质量:中。
    ------------------------
    紫外线指数:强,涂擦SPF大于15、PA+防晒护肤品。
    感冒指数:少发,无明显降温,感冒机率较低。
    穿衣指数:热,适合穿T恤、短薄外套等夏季服装。
    洗车指数:较适宜,无雨且风力较小,易保持清洁度。
    运动指数:较适宜,请适当降低运动强度。
    空气污染指数:中,易感人群应适当减少室外活动。
    
    ------------------------
    22℃/25------------------------
    6月5日 中雨
    ------------------------
    东南风微风
    ------------------------
    8.gif
    ------------------------
    8.gif
    ------------------------
    21℃/25------------------------
    6月6日 阵雨转多云
    ------------------------
    南风转西北风微风
    ------------------------
    3.gif
    ------------------------
    1.gif
    ------------------------
    上海简称:沪,位置:上海地处长江三角洲前缘,东濒东海,南临杭州湾,西接江苏,浙江两省,北界长江入海,正当我国南北岸线的中部,北纬31°14′,东经121°29′。
    面积:总面积7823.5平方公里。人口:人口1000多万。上海丰富的人文资源、迷人的城市风貌、繁华的商业街市和欢乐的节庆活动形成了独特的都市景观。游览上海,
    不仅能体验到大都市中西合壁、商儒交融、八方来风的氛围,而且能感受到这个城市人流熙攘、车水马龙、灯火璀璨的活力。上海在中国现代史上占有着十分重要的地位,
    她是中国XXX的诞生地。许多震动中外的历史事件在这里发生,留下了众多的革命遗迹,处处为您讲述着一个个使人永不忘怀的可歌可泣的故事,成为包含民俗的人文景
    观和纪念地。在上海,每到秋祭,纷至沓来的人们在这里祭祀先烈、缅怀革命历史,已成为了一种风俗。大上海在中国近代历史中,曾是风起云涌可歌可泣的地方。在这里荟
    萃多少风云人物,散落在上海各处的不同住宅建筑,由于其主人的非同寻常,蕴含了耐人寻味的历史意义。这里曾留下许多革命先烈的足迹。瞻仰孙中山、宋庆龄、鲁迅等故居,
    会使您产生抚今追昔的深沉遐思,这里还有无数个达官贵人的住宅,探访一下李鸿章、蒋介石等人的公馆,可以联想起主人那段显赫的发迹史。
    ------------------------

     以上,就是一个完整的第三方的webservice服务的调用的实例。

  • 相关阅读:
    Grumpy: Go 上运行 Python!
    Qt5.7.0配置选项(configure非常详细的参数)
    vs2010 2013 2015+ 必备插件精选(15个)
    solr与.net主从复制
    MVC5模板部署到mono
    solr主从复制
    CentOS 5.5安装图解教程
    VMware7安装CentOS6.5教程
    VMware安装CentOS 图文教程
    在VirtualBox下安装CentOS教程(截图版)
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/6939828.html
Copyright © 2011-2022 走看看