用WebService调用第三方天气接口

先放上接口调用地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx

  • 新建一个普通的java项目get_weather_demo2
    项目最终结构如下图:
    最终目录结构
  • 右键项目,选择properties,找到并复制项目的路径,打开cmd命令行,按照之前写的一篇文章《通过网络编程远程调用service接口的demo》中的方式,将目录切到本项目的src文件夹下,输入
wsimport -keep -p demo.cyj.service -verbose http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

这时却报错了,报错如下图:


报错信息
  • 经过一番百度上的搜索和寻找,终于大概知道了错误原因,解决方案:
    引用自love小仙的博客。
    按照解决方案中所说,浏览器地址改为http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl,将网页上的字符全部复制下来放到本地的一个文本文档中,将文中出现过的两处

    全部替换为
    然后文件保存为weather.wsdl
  • 打开cmd命令行,进入本项目的src文件夹下,按照格式:
wsimport -s . yourpath/weather.wsdl

输入命令行,比如我的存放地址:

E:\eclipseOxygenWorkspace\get_weather_demo\src\demo\cyj\weather_test\weather.wsdl

我的命令行就为

wsimport -s . E:\eclipseOxygenWorkspace\get_weather_demo\src\demo\cyj\weather_test\weather.wsdl
成功的命令行

这个时候就可以看到,多了一个包,里面有很多java文件。

  • 新建一个测试类WeatherTest.java
package demo.cyj.test;

import cn.com.webxml.ArrayOfString;
import cn.com.webxml.WeatherWebService;
import cn.com.webxml.WeatherWebServiceSoap;

public class WeatherTest {
    public static void main(String[] args) {
        WeatherWebService factory = new WeatherWebService();
        WeatherWebServiceSoap weatherWebServiceSoap = factory.getWeatherWebServiceSoap();
        ArrayOfString strArray = null;
        strArray = weatherWebServiceSoap.getWeatherbyCityName("成都");
        System.out.println(strArray.getString());
    }   
}

跑起来,可以看到控制台打印:


控制台信息

你可能感兴趣的:(用WebService调用第三方天气接口)