簡體   English   中英

用 Java 創建 SOAP Web 服務客戶端應用程序

[英]Create a SOAP Webservice Client Application in Java

我在 Eclipse 中使用Apache CXF在 Java 中創建了一個 Webservice,現在我必須創建一個 WebService 客戶端應用程序來使用和調用它。 我一直在尋找一種方法來做到這一點,我發現客戶端總是依賴於服務器的 Java 類。

問題是我必須在其他 Java 環境中開發一個客戶端類。 我的問題是:有沒有辦法開發一個獨立於 web 服務服務器包的客戶端類,只使用WSDL文件?

謝謝 :)

您可以借助Apache CXF Link wsdl to java 工具。 wsdl2java - 獲取一個 WSDL 文檔並生成完全注釋的 Java 代碼,從中實現服務。

您也可以借助 eclipse 插件。

Eclipse插件生成java類

您可以將請求作為 XML 請求發送到 Web 服務 API。 只有您需要使用正確的標題和正文來構造 SOAP 投訴請求。 通過使用 SoapUI,您可以生成 XML 請求結構,然后在您的應用程序中重用它。

如果你使用 Jax-RS(REST APIs),即使是 http 方法也可以

[更新]

如果您對如何創建客戶端類感到困惑,那么您將遵循此

  1. 使用 wsimport

     > http : //hostname :port/wsdl.url on command line to create proxy classes
  2. 創建jar文件生成代理類

  3. 將jar文件添加到類路徑
  4. 使用 Service API 構建端點,然后調用服務。
  5. 下面給出了示例測試客戶端。

     try { URL wsdlURL = new URL("http://localhost:8082/cxf/services/yourservice?wsdl"); QName SERVICE_NAME = new QName("http://package.name/","PORTNAme"); Service service = Service.create(wsdlURL, SERVICE_NAME); client = service.getPort(PORTInterface.class); client.executeYourMethod() } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }

  1. 網址是 WSDL 網址
  2. 要創建 QName,需要提供服務接口的命名空間(通常是包的名稱)和端口名稱,您可以在綁定部分的 WSDL 中找到這些名稱。
  3. 還需要識別代理類(名稱類似於端口名稱)

干杯薩西什

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM