註明: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("------------------------");
}
}
}
完