注明:java
使用工具 :wsimportweb
在JDK的bin文件夹中,有一个wsimport.exe工具,可依据wsdl文件生成相应的类文件,将生存在本地这些类文件拷贝到须要使用的项目中,就能够像调用本地的类同样调用webService提供的方法。该工具能够用于非Java的服务器,如用C#编写的WebService,经过wsimport则生成Java的客户端实现。服务器
经常使用命令以下:工具
C:\Program Files\Java\jdk1.8.0_101\bin>wsimport -keep -s D:\webserviceTQ\s -p com.cn.weather -verbose C:\Users\zhangwensen\Desktop\WeatherWS.xml测试
-keep:是否生成java源文件xml
-d:指定.class文件的输出目录对象
-s:指定.java文件的输出目录element
-p:定义生成类的包名,不定义的话有默认包名get
-verbose:在控制台显示输出信息webservice
-b:指定jaxws/jaxb绑定文件或额外的schemas
-extension:使用扩展来支持SOAP1.2
1.拿到webservice的地址,好比http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
下载到xml文件到本地 WeatherWS.xml
2.将全部的<s:element ref="s:schema" />
<s:any />改为 <s:any minOccurs="2" maxOccurs="2"/>,一共有三处须要修改,建议查找<s:element ref="s:schema" />,修改时把<s:any />也要删掉
3.运行命令
wsimport -keep -s D:\webserviceTQ\s -p com.cn.weather -verbose C:\Users\zhangwensen\Desktop\WeatherWS.xml
4.将代码复制到src文件夹下
5.编写测试类
package com.cn.weather;
import java.util.List;
public class WeatherWsClient {
public static void main(String[] args) {
//建立一个WeatherWS工厂
WeatherWS ws = new WeatherWS ();
//根据工厂建立一个WeatherWSSoap对象
WeatherWSSoap weatherWSSoap = ws.getWeatherWSSoap();
//调用WebService提供的getWeather方法获取广州市的天气预报状况
ArrayOfString weatherInfo = weatherWSSoap.getWeather("广东", "");
List<String> weatherList = weatherInfo.getString();
//遍历天气预报信息
for(String str : weatherList) {
System.out.println(str);
System.out.println("--------------");
}
ArrayOfString s = weatherWSSoap.getRegionProvince();
List<String> list = s.getString();
for (String string : list) {
System.out.println(string);
System.out.println("------------------------");
}
}
}
完