導航:首頁 > 編程語言 > java調用webservice方法

java調用webservice方法

發布時間:2025-05-28 07:12:50

A. 如何用java來獲取webservice數據

Java調用WebService可以直接使用Apache提供的axis.jar自己編寫代碼,或者利用Eclipse自動生成WebService Client代碼,利用其中的Proxy類進行調用。理論上是一樣的,只不過用Eclipse自動生成代碼省事些。以下是使用Java代碼獲取WebService數據的一個實例:

1. 編寫代碼方式:

package com.yun.test;

import java.rmi.RemoteException;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

import org.apache.axis.message.PrefixedQName;

import org.apache.axis.message.SOAPHeaderElement;

import com.cezanne.golden.user.Exception;

import com.cezanne.golden.user.UserManagerServiceProxy;

import javax.xml.namespace.QName;

import java.net.MalformedURLException;

import javax.xml.rpc.ServiceException;

import javax.xml.soap.Name;

import javax.xml.soap.SOAPException;

public class testWebService {

public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException {

//標識Web Service的具體路徑

String endpoint = "WebService服務地址";

// 創建 Service實例

Service service = new Service();

// 通過Service實例創建Call的實例

Call call = (Call) service.createCall();

//將Web Service的服務路徑加入到call實例之中.

call.setTargetEndpointAddress(new java.net.URL(endpoint));//為Call設置服務的位置

// 由於需要認證,故需要設置調用的SOAP頭信息。

Name headerName = new PrefixedQName(new QName("發布的wsdl里的targetNamespace里的url", "string_itemName"));

org.apache.axis.message.SOAPHeaderElement header = new SOAPHeaderElement(headerName);

header.addTextNode("blablabla");

call.addHeader(header);

// 設置SOAPHeaderElement

Name soapHeaderName = new PrefixedQName(new QName("發布的wsdl里的targetNamespace里的url", "SoapHeader"));

SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(soapHeaderName);

call.addHeader(soapHeaderElement);

// 執行調用並返回結果

Object result = call.invoke(new Object[]{});
return result.toString();
}

}

以上代碼示例展示了如何通過Java代碼調用WebService,包括設置服務地址、添加SOAP頭信息以及執行調用。需要注意的是,這里的代碼需要根據實際的WebService服務地址和認證信息進行調整。

另外,如果想要使用Eclipse自動生成的代碼進行調用,可以按照以下步驟操作:

1. 在Eclipse中打開項目,右鍵選擇「New」 -> 「Web Services」 -> 「Client」;

2. 指定Web Service的URL和WSDL文件路徑;

3. 生成客戶端代碼後,可以使用生成的Proxy類進行調用,示例如下:

UserManagerServiceProxy proxy = new UserManagerServiceProxy();

String result = proxy.someMethod();

以上就是使用Java獲取WebService數據的基本方法,希望對您有所幫助。

B. java語言使用post方式調用webService方式

WebService可以通過多種方式調用,包括Get、Post、Soap和Document等。下面通過Java語言展示如何使用Post方式調用WebService的具體實現代碼:

首先定義一個名為ClientTest的類,該類包含一個名為post的方法,用於演示HTTP-POST調用。

在post方法中,首先導入必要的Java庫和Apache CXF庫。接著創建一個URL對象,指向要調用的WebService地址,例如:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity。

通過URL對象打開一個URLConnection,並設置允許輸出數據。然後創建一個OutputStreamWriter對象,用於向伺服器發送POST數據。這里以「byProvinceName=福建」作為示例數據發送。

接著創建一個BufferedReader對象,用於從伺服器讀取響應數據。通過URLConnection的getInputStream方法獲取輸入流,然後使用BufferedReader讀取伺服器返回的內容。

最後,將讀取到的內容添加到一個StringBuilder對象中,並返回最終的響應字元串。

需要注意的是,該示例代碼中包含了異常處理邏輯,確保在發生異常時能夠正確地關閉OutputStreamWriter,防止資源泄露。

通過上述步驟,可以使用Java語言通過POST方式成功調用指定的WebService,獲取所需的數據或服務。

這種方法適用於需要發送復雜數據或需要攜帶大量參數的場景。同時,Post方式提供了更靈活的數據傳輸機制,能夠更好地滿足各種Web服務調用需求。

C. java調用webservice介面

Java調用webservice介面有三種主要方法

  1. 直接AXIS調用遠程的webservice

    • 使用Apache AXIS庫來創建Service和Call對象。
    • 設置目標端點地址和操作名稱。
    • 添加參數和設置返回類型。
    • 調用invoke方法執行遠程調用。
  2. 直接SOAP調用遠程的webservice

    • 使用SOAP協議通過HTTP傳送XML數據。
    • 需要處理MalformedURLException和SOAPException等異常。
    • 設置Call對象的編碼風格、目標對象URI和方法名稱。
    • 創建參數向量並添加到Call對象中。
    • 調用invoke方法並處理響應或故障。
  3. 使用Eclipse生成客戶端代碼

    • 通過wsimport工具根據WSDL文件生成客戶端代碼。
    • 在Eclipse中新建一個Java項目並導入生成的代碼。
    • 創建測試類並實例化webservice的工廠類。
    • 通過工廠類獲取webservice的實現類對象。
    • 調用實現類中的方法執行遠程調用,並處理返回結果。

注意:以上方法均需要相應的庫支持,如Apache AXIS庫或JAXWS庫。在實際開發中,選擇哪種方法取決於具體需求和項目環境。

閱讀全文

與java調用webservice方法相關的資料

熱點內容
設計網路密碼怎麼設計 瀏覽:240
用戶分群java 瀏覽:950
鎮魔曲55以後怎麼升級 瀏覽:541
二元數據屬於什麼類型數據 瀏覽:967
怎麼關閉APP聲音光看視頻 瀏覽:827
access如何更新數據 瀏覽:519
自己怎麼編程進行期貨自動化交易 瀏覽:181
pr畫面鋪滿全屏數據是多少 瀏覽:984
wifi換了密碼連接不上怎麼辦 瀏覽:411
如何識別外部介面文件 瀏覽:898
win10電腦之間傳送大文件 瀏覽:749
運營商大數據獲客系統途徑有哪些 瀏覽:664
安卓飛信舊版本 瀏覽:953
ps打開一個文件用了15分鍾 瀏覽:346
資料庫怎麼存視頻 瀏覽:239
寶元系統開機中怎麼編程新的程序 瀏覽:863
永碩e盤怎麼傳文件 瀏覽:131
win10文件怎麼解鎖 瀏覽:551
新加坡蘋果7plus售價 瀏覽:900
哪個網站有賣香煙的 瀏覽:311

友情鏈接