1. 程式人生 > >利用java webservice調用天氣預報實踐

利用java webservice調用天氣預報實踐

eclipse 分享 src 預報 efi 測試 bsp 天氣 exception

最近要和其他業務系統進行數據交換,選擇了webservice方案,於是查了一下網上的用法。首先是做一個天氣的查詢例子,看著挺簡單,可實際動手做起來發現坑很多,費了半天勁終於調通了,於是記錄下來。

1,在eclipse裏新建一個java項目,在src裏添加一個文件,命名為WeatherWebService.wsdl。

技術分享圖片

2,在瀏覽器中訪問地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl,這個是天氣預報的webservice描述地址。復制裏面的內容,註意從<wsdl:definitions 標簽開始復制一直到<wsdl:definitions標簽結束。粘貼到java項目的文件WeatherWebService.wsdl中。

3,此時重點來了,選中文件,右鍵選擇web service-generate client會彈出以下窗口

技術分享圖片

,如果沒有錯誤提示直接點擊Finish按鈕即可完成引用。但往往是會有一個錯誤提示無法完成,這時候註意點來了,剛才拷貝過來的內容需要改動一些內容才能繼續。

3.1 首先是把註釋的標簽刪除,內容大概是:<a href="http://www.webxml.com.cn/" target="_blank">WebXml.com.cn</a> <strong>天氣預報 Web 服務

3.2 將所有的<br>標簽替換成<br/>

4 這時候就會自動生成引用的相關代碼:

技術分享圖片

5 這時候就可以寫一個調用的測試代碼了,新建一個測試類,在main函數裏編寫一個得到北京天氣的測試代碼。

public static void main(String[] args) throws ServiceException, RemoteException {
// TODO Auto-generated method stub

WeatherWebService service1=new WeatherWebServiceLocator();
WeatherWebServiceSoap serviceSoap= service1.getWeatherWebServiceSoap();
String[] cityweather= serviceSoap.getWeatherbyCityName("北京");
for (String s : cityweather) {
System.out.println(s);
}

}

結果:

技術分享圖片

利用java webservice調用天氣預報實踐