wsimport教程:解决免费WebService调用异常与天气预报示例

需积分: 19 52 下载量 198 浏览量 更新于2024-09-09 收藏 79KB DOCX 举报
本文档主要介绍了如何使用Java的wsimport工具来调用免费的Web服务,特别是针对一个具体的示例——天气预报和国内手机号码归属地查询。首先,作者提供了一个免费的Web服务地址(http://www.webxml.com.cn/zh_cn/index.aspx),这个地址提供了包括天气预报在内的多种服务。 使用wsimport命令时,遇到的问题是由于WSDL文件中存在语法错误,导致在生成客户端代码时出现了异常。解决这个问题的关键在于找到并替换WSDL文件中的错误部分。具体来说,需要将原文件中<s:elementref="s:schema"/><s:any/>标签结构修改为<s:anyminOccurs="2"maxOccurs="2"/>,以确保wsimport能够正确解析。 在修复了WSDL文件后,通过wsimport命令(wsimport E:\WSDL\weather.wsdl)生成了Java客户端代码,这些代码会自动生成为WeatherWS、WeatherWSSoap等类。这些类包含了调用Web服务所需的方法,如getWeather()用于获取天气预报信息。 作者创建了一个名为WeatherClient的测试类,展示了如何在实际编程中使用生成的客户端代码。通过实例化WeatherWS对象,然后调用其getWeatherWSSoap()方法,获取到WeatherWSSoap对象,接着调用getWeather()函数,传入城市名(如"深圳")作为参数,并处理返回的ArrayOfString类型的天气信息。在这个过程中,还涉及到了List<String>数据类型的应用。 总结起来,本文介绍了如何通过wsimport工具处理WSDL文件,生成符合Java语言的客户端代码,并在实际项目中调用免费的天气预报Web服务,展示了基础的Web服务调用和XML数据处理技巧。这对于开发人员理解和使用Web服务接口具有很好的参考价值。