1. 找到提供天气预报 Webservice的网络地址 http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx 2. 使用eclipse的web service浏览器访问 3. 客户端编码方式访问 –借助命令工具自动生成客户端代码 –
1.找到提供天气预报Webservice的网络地址
http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx
2. 使用eclipse的web service浏览器访问
3. 客户端编码方式访问
– 借助命令工具自动生成客户端代码
– 借助生成的代码编写请求代码
4.进入要生成项目文件夹下的src目录,在该目录下使用wsimport -keep urt(文件.wsdl),wsimport是jdk自带的工具
E:\Users\wuhui\Workspaces\MyEclipseProfessional2014\weather_webservice\src>"D:\P
rogram Files\Java\jdk1.7.0_17\bin\wsimport.exe" -keep E:\Users\wuhui\Workspace
s\MyEclipseProfessional2014\weather_webservice\weather.wsdl
生成后的代码如图:
5.客户端测试代码:
/** * @文件名称: ClientTest.java * @描述: TODO * @作者: 一叶扁舟(skiff) * @时间:2017年2月21日 下午2:22:39 * @版本:V1.0 */ package cn.skiff.www.webservice.weather.client; import java.util.List; import cn.com.webxml.ArrayOfString; import cn.com.webxml.WeatherWS; import cn.com.webxml.WeatherWSSoap; /** * @类功能说明: * @作者: 一叶扁舟 (skiff) * @创建时间:2017年2月21日 下午2:22:39 * @版本:V1.0 */ public class ClientTest { public static void main(String[] args) { WeatherWS weatherWS = new WeatherWS(); WeatherWSSoap weatherWSSoap = weatherWS.getWeatherWSSoap(); ArrayOfString weather = weatherWSSoap.getWeather("福州", null); List<String> list = weather.getString(); System.out.println(list); } }
6.说明: 直接生成客户端代码会抛异常, 无法生成客户端代码, 解决办法:
(1). 将对应的wsdl文档保存到本地
(2). 修改wsdl文档的部分内容:
将 <s:element ref="s:schema" /><s:any /> 替换成 <s:any minOccurs="2" maxOccurs="2"/>
备注: 这个是Java调用net的webservice都有的问题