2008-10-08 42 views
1

我使用XFire在我的應用程序周圍創建webservice包裝。 XFire在運行時提供了web服務接口和WSDL(或者在編譯時創建它們,但並不完全知道)。如何使用XFire創建記錄的WSDL

我們的許多客戶不太瞭解web服務,另外他們根本不會讀取像Javadoc這樣的任何外部文檔。我知道可以將文檔(對於參數和方法)直接添加到WSDL文件。

我想過註釋或Aegis XML文件,但我不知道如何......你知道一種方式嗎?

編輯:我剛剛發現這JIRA issue,但最後一項活動是2006年。任何想法?

回答

2

XFire正在緩慢前往/ dev/null。改爲使用CXF。換句話說,XFire被CXF所棄用 - 這幾乎是同樣的開發者。

由於您使用Java的第一種方法,我建議你爲你生成WSDL一勞永逸與CXF的java2wsdl工具,然後你把你的文件中說,並告訴CXF使用,而不是讓CXF產生記錄WSDL它在運行時/部署時擁有自己的(未記錄的)WSDL。

This page幾乎所有您需要了解的有關在CXF中創建Web服務的知識。

1

讓我來補充我的XFire兩分錢。我們在JDK6下的XFie(Tomcat 6.0和5.5)都有嚴重的問題。請看一下that issue。在我們的案例中,XFire在JDK6下有4個以上的Web服務導致掛起應用程序服務器(線程死鎖等)。這很有趣,但在JDK5下一切都很好。

我完全同意Christian Vest關於從XFire遷移到CXF的問題。它在許多情況下有意義,例如ESB Mule 2不再支持本地XFire連接器(see also)。

我想補充一點,從XFire到CXF的遷移並不是直截了當的方式(例如CXF具有與某些休眠版本see also衝突的jar依賴),但它是可行的。在我們的例子中,我們做了幾天沒有代碼修正(僅限Spring配置)。

和我最後一次有關CXF的提示 - 使用Aegis進行數據綁定而不是JAXB。它不適用於複雜的POJO。

2

而我最後關於CXF的提示 - 使用Aegis代替JAXB進行數據綁定。它不適用於複雜的POJO。

以我的經驗,我們有複雜的POJO和JAXB沒有問題,唯一的問題是,代碼開始與JAXBElements弄得一團糟。另一方面,Aegis文檔相當稀疏,並且與CXF相關性不好。