(二)利用Java WebService调用天气预报实践
最近要和其他業(yè)務(wù)系統(tǒng)進(jìn)行數(shù)據(jù)交換,選擇了webservice方案,于是查了一下網(wǎng)上的用法。首先是做一個天氣的查詢例子,看著挺簡單,可實(shí)際動手做起來發(fā)現(xiàn)坑很多,費(fèi)了半天勁終于調(diào)通了,于是記錄下來。
1,在eclipse里新建一個java項目,在src里添加一個文件,命名為WeatherWebService.wsdl。
2,在瀏覽器中訪問地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl,這個是天氣預(yù)報的webservice描述地址,復(fù)制里面的內(nèi)容,注意從<wsdl:definitions 標(biāo)簽開始復(fù)制一直到<wsdl:definitions標(biāo)簽結(jié)束。粘貼到j(luò)ava項目的文件WeatherWebService.wsdl中。
3,此時重點(diǎn)來了,選中文件,右鍵選擇web service-generate client會彈出以下窗口
如果沒有錯誤提示直接點(diǎn)擊Finish按鈕即可完成引用。但往往是會有一個錯誤提示無法完成
4 這時候就會自動生成引用的相關(guān)代碼:
5 這時候就可以寫一個調(diào)用的測試代碼了,新建一個測試類,在main函數(shù)里編寫一個得到北京天氣的測試代碼。
package cn.com.test;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import cn.com.WebXml.WeatherWebService;
import cn.com.WebXml.WeatherWebServiceLocator;
import cn.com.WebXml.WeatherWebServiceSoap;
public class TestWeathers {
public static void main(String[] args) {
WeatherWebService service1=new WeatherWebServiceLocator();
WeatherWebServiceSoap serviceSoap = null;
try {
serviceSoap = service1.getWeatherWebServiceSoap();
} catch (ServiceException e) {
e.printStackTrace();
}
String[] cityweather = null;
String[] city1={“北京”,“上海”,“深圳”,“廣州”};
try {
cityweather = serviceSoap.getWeatherbyCityName(“北京”);//不輸入默認(rèn)為上海市
} catch (RemoteException e) {
e.printStackTrace();
}
for (String s : cityweather) {
System.out.println(s);
}
}
}
執(zhí)行程序可查看結(jié)果。
總結(jié)
以上是生活随笔為你收集整理的(二)利用Java WebService调用天气预报实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hp1007打印机托纸盘怎么安?
- 下一篇: JavaFX之TableView