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都有的问题