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:/Program Files/java/jdk1.7.0_17/bin/wsimport.exe" -keep E:/Users/wuhui/Workspaces/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都有的问题
新闻热点
疑难解答