• Web Service实例——天气预报



       上述只是模拟了一下服务端和本地端的通信,但是却没有涉及到真正获取其他网站信息的操作。现在我们通过一个案例,是关于获取天气预报,来实际掌握该项技能。


       原本可以使用MyEclipse自动生成客户端,然后很简单的进行调用就可以了,不过,在建立的过程中,却出现了如下图所示的问题:

    2.3.1构建web Service client

     

       是因为MyEclipse无法解析标签,这个是什么原因,我们可以看一下服务商提供的WSDL的文档,很容易发现:


       xmlns:s=http://www.w3.org/2001/XMLSchema


       这句话正是MyEclipse无法解析的,因为这个原因,我们只能通过命令行建立,并且在构建的过程中还得绑定这个xsd文件。


       其实这个文件是jdk1.4的内容,java已经摒弃没有再使用了,也就造成了其无法通过验证的原因。



       我们现在MyEclipse中构建一个java项目(因为我们只是为了测试,并不一定需要Web工程):

     

    2.3.2构建java项目

    2.3.3添加JAX-WS支持



       之后,打开该项目,进入src目录,通过cmd构建命令:


     wsimport   -p   com.test.client


     -keep   http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?WSDL 


     -b   http://www.w3.org/2001/XMLSchema.xsd


     

     注意:必须一次性写完。

     

     

     -ppackage


     -keepwsdl文档的url


     -b:缺少的schema文件

    2.3.4进入项目的目录src

     

    2.3.5解析wsdl文档

     

    2.3.6解析出现警告完成编译


    注释:解析出现警告,这是正常的情况,不过我们已经将缺失的添加了,所以不必在这方面纠结了。而看一下我们的项目,refresh一下MyEclipse中的项目:

     

    2.3.7文件结构


    我们可以看到,它自动创建了com.test.client包,在包内,有一系列自动生成的java类。至此,我们的客户端已经创建完毕。


     

    现在我们添加一个测试类:WebWeatherClient


     

    package com.test.client;
    
    public class WebWeatherClient {
    	public static void main(String []args){
    		WeatherWebService service = new WeatherWebService();
    		WeatherWebServiceSoap soap = service.getWeatherWebServiceSoap();
    		System.out.println(soap.getWeatherbyCityName("杭州").getString());
    	}
    }
    

    代码段2.3.1测试类。

     

    现在让我们运行一下:

     

     

    可以看到我们已经拿到杭州这个城市的天气信息了。



  • 相关阅读:
    nginx能访问html静态文件但无法访问php文件
    LeetCode "498. Diagonal Traverse"
    LeetCode "Teemo Attacking"
    LeetCode "501. Find Mode in Binary Search Tree"
    LeetCode "483. Smallest Good Base" !!
    LeetCode "467. Unique Substrings in Wraparound String" !!
    LeetCode "437. Path Sum III"
    LeetCode "454. 4Sum II"
    LeetCode "445. Add Two Numbers II"
    LeetCode "486. Predict the Winner" !!
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3230733.html
Copyright © 2020-2023  润新知