我有一個需求,根據這個需求我必須創建一個基於wsdl文件的Axis2 Web服務。我已經有了wsdl文件。我以前一直在使用wsdl2java創建Web服務客戶端,但我不知道如何使用給定的wsdl文件創建Web服務。有人可以幫助我給出正確的命令或選項來使用。從WSDL文件創建web服務(不是web服務客戶端)
此外,我需要在WAS 6.1和JBoss 5.1.0 GA上發佈它,爲此應該做什麼。
我有一個需求,根據這個需求我必須創建一個基於wsdl文件的Axis2 Web服務。我已經有了wsdl文件。我以前一直在使用wsdl2java創建Web服務客戶端,但我不知道如何使用給定的wsdl文件創建Web服務。有人可以幫助我給出正確的命令或選項來使用。從WSDL文件創建web服務(不是web服務客戶端)
此外,我需要在WAS 6.1和JBoss 5.1.0 GA上發佈它,爲此應該做什麼。
我能夠得到答案。在此處更新以供他人蔘考。
使用WSDL開始,創建和部署服務
我們從一個WSDL,但是如果你沒有一個WSDL,需要從Java類創建WSDL,請使用的Java2WSDL工具創建WSDL。正如您可能已經知道的那樣,服務的WSDL描述提供了該Web服務的精確定義。 Axis2可以處理WSDL並生成爲您完成大部分工作的Java代碼。在服務器端,我們稱它們爲Skeletons,在客戶端稱爲Stubs。
寫使用Axis2 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
聽說我們可以利用的WSDL2Java命令的一些選項生成一些骨架代碼。這可以用於這裏的要求。 – 2013-04-02 06:56:10
我很驚訝,沒有人曾經嘗試過。這不是。 1網站關於技術問題和答案,仍然沒有迴應。請幫助我。 – 2013-04-04 06:45:21