webservices系列(三)——調用線上webservice(天氣預報和號碼查詢)
- 2019 年 10 月 30 日
- 筆記
版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/luo4105/article/details/69938780
天氣預報,這個介面是.net平台的,直接用wsimport 生成程式碼會報錯,需要保存本地修改

瀏覽器打開http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl,另存為weather.wsdl,然後將文件中所有 <s:element ref="s:schema" /><s:any /> 替換成 <s:any minOccurs="2" maxOccurs="2"/>即可。
再次使用wsimport命令生成客戶端程式碼,這次使用本地修改好的WSDL文件來生成命令如下: wsimport -p com.lc.client3 -keep H:workspace1.8web_service_test2srccomlcweather.wsdl
可以看到在當前目錄下生成了很多Java類,將這些類複製到eclipse項目

下面編寫一個測試類來調用生成的客戶端程式碼,獲取天氣預報資訊
public class WeatherClent { public static void main(String[] args) { WeatherClent clent = new WeatherClent(); clent.printWeathInfo("深圳"); } /** * 天氣查詢 * @param cname */ public void printWeathInfo(String cname) { WeatherWS wws = new WeatherWS(); WeatherWSSoap wwssoap = wws.getWeatherWSSoap(); ArrayOfString aString = wwssoap.getWeather(cname, null); List<String> ls = aString.getString(); for(String s : ls) { System.out.println(s); } } }運行結果

手機號碼詳情查詢 使用wsimport生成客戶端程式碼 wsimport -p com.lc.client3.mobile -keep http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl 將生成的程式碼複製到eclipse對應的包下面

編寫測試類
public class WeatherClent { public static void main(String[] args) { WeatherClent clent = new WeatherClent(); clent.printWeathInfo("深圳"); } /** * 天氣查詢 * @param cname */ public void printWeathInfo(String cname) { WeatherWS wws = new WeatherWS(); WeatherWSSoap wwssoap = wws.getWeatherWSSoap(); ArrayOfString aString = wwssoap.getWeather(cname, null); List<String> ls = aString.getString(); for(String s : ls) { System.out.println(s); } } }運行結果

webservices系列參考資料 [1].webservice搭建和文件上傳下載:http://wuhongyu.iteye.com/blog/807470
[2].天氣預報和手機號資訊查詢:https://my.oschina.net/liu13430/blog/373940?fromerr=WmdtQOoY
[3].axis2創建實例:http://clq9761.iteye.com/blog/976029/
[4].axis2整合web項目:http://wangronaldo.iteye.com/blog/1456441
[5].xml配置詳情:http://blog.csdn.net/guihaijinfen/article/details/8363839

