[英]wsdl2java and axis2 webservice setup and testing
我對網絡服務的建設很陌生,所以請原諒我的無知。
我得到了一些.wsdl
文件,其中包含一些導入的.xsd
文件。
我被告知可以使用來自apache axis2
項目的wsdl2java
從.wsdl
文件創建Web服務。
我正在嘗試構建的Web服務期望將數據推送到它,並且我想測試它,我有正確的流程將數據推送到我創建的Web服務。
我的行動的基礎來自這里 ,但不太確定它有多少適用。
我在MacOSX上,但也可以訪問ubuntu系統。
到目前為止我采取的步驟是:
cd /directory/of/wsdl/file
wsdl2java.sh -uri tmp.wsdl -d adb -s
這將創建一個build.xml
文件和src
目錄
然后我試着跑
ant
要么
ant jar.client
在此之后,我不太清楚該怎么做,為了讓網絡服務器運行,以便我可以測試它...任何建議將不勝感激。
提前致謝。
在SOAP Web服務中: - Web服務的基本概念是它具有消費者和生產者。 消費者是消費Web服務的消費者,生產者是生成Web服務的消費者。 生產者發布其服務,以便消費者可以使用它。 它基本上發布了一個wsdl文件,以便您可以創建一個客戶端代碼或jar,並可以直接從您的代碼中調用它。 您也可以使用soap UI直接調用Web服務。 如果您正在尋找從wsdl生成生產者代碼,那么它將不夠好,因為它不會為您提供業務邏輯,您需要自己實現它。 這不是推薦的方法。 通常首先編寫java實現,並基於它創建一個wsdl,從中創建客戶端jar,以便客戶端在其代碼中使用Web服務。 為了直接測試生產者使用soapui。 如果你想創建生產者,那么這是一個直接的過程。 需要在eclipse中創建一個動態項目 - >創建一個類 - >在類上使用@WebService(serviceName =“xyz”),類似地在方法級別定義@WebMethod。 將其部署為在服務器上運行,並且您已完成Hello World Web服務生產者。
用於創建客戶端: -
讓我們舉一個網上發布的wsdl的例子: -
http://www.webservicex.net/geoipservice.asmx?WSDL
首先,您需要創建客戶端jar或java類: -
wsimport -keep -s C:\wsdl http://www.webservicex.net/geoipservice.asmx?WSDL
查看文檔或查看wsdl中的服務名稱。 它將是GeoIPService。 現在在您的類中將webservice方法稱為: -
package com.soap.client;
import net.webservicex.GeoIP;
import net.webservicex.GeoIPService;
import net.webservicex.GeoIPServiceSoap;
public class SoapWebServiceClient {
public static void main(String[] args) {
GeoIPService ipService = new GeoIPService();
GeoIPServiceSoap gp = ipService.getGeoIPServiceSoap();
GeoIP ip = gp.getGeoIP("117.198.208.1"); //google.com
System.out.println(ip.getCountryName());
}
}
現在,對於本地wsdl,您可以使用axis2或簡單地使用wsimport創建類和jar
將您的wsdl和模式放在一個文件夾中,如下所示: -
C:\wsdl>wsimport -keep -s C:\wsdl C:\wsdl
C:\wsdl>wsimport -clientjar client.jar C:\wsdl
它將為您創建一個客戶端。 查看服務名稱,同樣可以從java代碼測試已部署的服務,如上所示。
要使用soapui進行測試,您需要下載它並創建一個新的soap項目。 提供任何名稱並瀏覽到所有架構和wsdl所在的本地驅動器。 它會為您創建所有請求。 您需要填寫請求參數(“?”)中的值並運行該服務。 如果一切順利,它將顯示結果。
注意:-
wsimport是JAX-WS參考實現的命令行工具。 JAX-WS RI使用JAXB進行數據綁定。
Axis2僅在某種程度上實現了JAX-WS API,因此與JAX-WS RI生成的Java工件相比,生成的Java工件可能完全不同。 Axis2也不使用JAXB,而是提供ADB(默認),Apache XmlBeans或JiBX的數據綁定選擇。 最常用的是xmlbeans或JAXB。
您從發布URL查找wsdl文件並對Web服務進行反向工程以生成類型,因此請使用wsimport
wsimport -d . -p servicesource -keep tmp.wsdl
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.