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测试类。

现在让我们运行一下:

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






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值