1. 程式人生 > >java 對webservice 的基本呼叫及常見問題的解決方案

java 對webservice 的基本呼叫及常見問題的解決方案

要用webservice,可以有很多技術,我比較常用的事xfire。

不要太複雜,直接貼程式碼,如下:


		
		String url = "http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl";
		
		Client client = new Client(new URL(url));
		 
		Object[] results = client.invoke("getCountryCityByIp", new Object[] {"27.17.43.14"});  
		 

第一步:獲取wsdl地址,網路上有好多免費的地址可以自行搜尋。

然後就可以通過client以及具體的引數獲取相應的資訊。

本次例項為通過ip獲取所在地的webservice。引數為:getCountryCityByIp=27.17.43.14  

如果報錯且為:伺服器無法處理請求。 ---> 未將物件引用設定到物件的例項。
則表示介面有問題或者是方法及引數不對。

如果在獲取返回值時候獲取到的結果為:[#document: null]

原因是獲取到的資料是Document  型別的,那就需要下面的程式碼來分析資料。

首先通過訪問url可以發現,返回值是放在getCountryCityByIpResult中的

程式碼如下:

Document d = (Document)results[0];   
         NodeList node = d.getElementsByTagName("getCountryCityByIpResult");//此處可獲取所有節點迴圈。
         NodeList n1 = node.item(0).getChildNodes();
         
         for (int i=0;i<n1.getLength();i++){ 
	    	 Node n = n1.item(i);
	         System.out.println(n.getNodeName()+"-->"+n.getFirstChild().getNodeValue());
	     } 

demo下載地址(包含xfire的引用jar):

https://download.csdn.net/download/u011561335/10284632

如有遺漏,請留言