2013-03-19 142 views
3

我有一個需求,根據這個需求我必須創建一個基於wsdl文件的Axis2 Web服務。我已經有了wsdl文件。我以前一直在使用wsdl2java創建Web服務客戶端,但我不知道如何使用給定的wsdl文件創建Web服務。有人可以幫助我給出正確的命令或選項來使用。從WSDL文件創建web服務(不是web服務客戶端)

此外,我需要在WAS 6.1和JBoss 5.1.0 GA上發佈它,爲此應該做什麼。

+0

聽說我們可以利用的WSDL2Java命令的一些選項生成一些骨架代碼。這可以用於這裏的要求。 – 2013-04-02 06:56:10

+0

我很驚訝,沒有人曾經嘗試過。這不是。 1網站關於技術問題和答案,仍然沒有迴應。請幫助我。 – 2013-04-04 06:45:21

回答

5

我能夠得到答案。在此處更新以供他人蔘考。

使用WSDL開始,創建和部署服務

我們從一個WSDL,但是如果你沒有一個WSDL,需要從Java類創建WSDL,請使用的Java2WSDL工具創建WSDL。正如您可能已經知道的那樣,服務的WSDL描述提供了該Web服務的精確定義。 Axis2可以處理WSDL並生成爲您完成大部分工作的Java代碼。在服務器端,我們稱它們爲Skeletons,在客戶端稱爲Stubs。

寫使用Axis2 Web服務的這種方法包括四個步驟:

  1. 生成框架代碼。
  2. 添加業務邏輯。
  3. 爲Web服務創建一個* .aar存檔(Axis Archive)。
  4. 部署Web服務。

第一步:生成骨架代碼

要生成骨骼和所需的類,你可以使用Axis2中提供的WSDL2Java工具。該工具位於發行版的bin目錄中,可以使用提供的腳本(.bat或.sh)執行。該工具的參數列表可以在Axis2參考文檔中找到。

本例中wsdl2java工具的參數如下。請注意,對於這個例子,我們使用xmlbeans作爲數據綁定框架,並且生成的代碼將被放置在「samples」目錄中。

wsdl2java.sh -uri ../samples/wsdl/Axis2SampleDocLit.wsdl -ss -sd -d xmlbeans 
-o ../samples -p org.apache.axis2.userguide

這將產生在「抽樣/ SRC」目錄所需的類和架構類中的「樣本/資源/ schemaorg_apache_xmlbeans」目錄中。請注意,這些不是源文件,應該在類路徑中可用,以便編譯生成的類。

第2步:實現業務邏輯

現在你應該填寫業務邏輯的骨架類。您可以在samples/src/org/apache/axis2/userguide目錄中的生成的類中找到框架類-Axis2SampleDocLitServiceSkeleton.java-讓我們在框架中填充echoString(..)方法,如下所示。 「samples/wsdl」目錄中的-Axis2SampleDocLit.wsdl有三個操作:echoString,echoStringArray,echoStruct。看的時候,他們都充滿了別人會怎麼看,看代碼爲Axis2SampleDocLitService服務

public org.apache.axis2.userguide.xsd.EchoStringReturnDocument 
    echoString(org.apache.axis2.userguide.xsd.EchoStringParamDocument param4) throws Exception { 
    //Use the factory to create the output document. 
    org.apache.axis2.userguide.xsd.EchoStringReturnDocument retDoc = 
      org.apache.axis2.userguide.xsd.EchoStringReturnDocument.Factory.newInstance(); 
    //send the string back. 
    retDoc.setEchoStringReturn(param4.getEchoStringParam()); 
    return retDoc; 

第3步:創建存檔文件

的Axis2服務必須捆綁爲一個服務檔案。下一步是將類打包到.aar(axis2歸檔文件)中並將其部署到Axis2中。有一個用代碼生成的ant文件;它會爲您生成Axis2服務歸檔。但是,如果你不想使用Ant,您可以通過以下步驟創建一個檔案:

編譯生成的代碼。
複製「資源/ schemaorg_apache_xmlbeans」 XMLBeans類到您的類文件夾中。
在生成的文件,會出現一個services.xml文件,這是Axis2服務部署描述符。[詳細瞭解一下。資源/ service.xml中複製到META-INF/services.xml的
(要編寫自己的service.xml文件,請參閱編寫Web服務使用Axis2的主要API的子部分)

使用內容創建存檔的類文件夾。將目錄更改爲類文件夾並運行jar -cf service-name.aar來創建存檔。

第4步:部署Web服務

該服務可以通過簡單地去掉了 「.aar」 文件到你的servlet 「/ webapps /下的Axis2/WEB-INF」 「服務」 目錄中進行部署容器。我們建議使用Apache Tomcat作爲servlet容器。請注意,服務目錄僅在Tomcat爆炸axis2.war後纔可用。但是,最簡單的方法是在將axis2.war複製到webapps目錄(如果尚未啓動它)後啓動Tomcat。檢查Axis2的Web應用程序(

http://localhost:8080/axis2
)的主頁上的「服務」的鏈接,看到了Axis2SampleDocLitService是否部署的服務下顯示。

我們建議您使用分解的配置在WebLogic和WebSphere應用程序服務器上部署Axis2的WAR支持的Axis2的hotupdate/hotdeployment功能。有關詳細信息,請參閱Application Server特定配置指南

注:Axis2中提供了一種簡單的方式來部署使用Axis2的Web應用程序的管理模塊中的「上傳服務」工具的Web服務。 (見Web管理指南獲取更多信息)

請參見以下鏈接爲文章全文:http://axis.apache.org/axis2/java/core/docs/adv-userguide.html