簡體   English   中英

wsdl2java和axis2 webservice設置和測試

[英]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.

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