wsimport命令介紹
在JDK的bin文件夾中,有一個wsimport.exe,這個工具依據wsdl文件生成相應的類文件,然后用這些類文件,就可以像調用本地的類一樣調用WebService提供的方。該工具可以用於非Java的服務器,如:用C#編寫的WebService,通過wsimport則生成Java的客戶端實現。對於命令的使用方法,我們以開放的中文簡體字與繁體字轉換Web Service接口為例,如下:
在命令提示符中使用如下命令:
wsimport -keep -p com.zhj2f.client http://www.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl

package test; import com.zhj2f.client.TraditionalSimplifiedWebService; import com.zhj2f.client.TraditionalSimplifiedWebServiceSoap; public class test { public static void main(String args[]){ TraditionalSimplifiedWebService tsws = new TraditionalSimplifiedWebService(); TraditionalSimplifiedWebServiceSoap tss = tsws.getTraditionalSimplifiedWebServiceSoap(); String res = tss.toTraditionalChinese("我是誰"); System.out.println(res); } }
當然我們還可以使用上面同樣的方法調用天氣預報提供的開放webservice接口,只是天氣預報的那個接口有點不同。如果我們直接使用wsimport 通過wsdl地址生存java 文件時,會報錯。因為該wsdl里面包含 ref = "s:schema" 這樣的引用。而jaxb是不支持的。所以手動將該wsdl下載(也就是網頁另存為)下來做下修改,然后再生成java文件。
修改方法為:將所有的<s:element ref="s:schema"/> 改成 <s:any minOccurs="2" maxOccurs="2"/>,並且刪除<s:any/>。
然后再通過wsimport生成java文件,就可以正常使用了。
參考資料:
[1] http://www.cnblogs.com/simle/archive/2011/11/03/2233417.html
[2] http://blog.csdn.net/lun379292733/article/details/18035915
[3] 常用Web Service匯總