2011-01-18 66 views
3

我要在運行於Java 6上的JBoss5中實現一個web服務。根據JBoss Documentation,選擇是使用JBoss本地實現CXF或metro。由於本地不需要任何額外的庫(CXF將拉動Spring?)我認爲這將是第一選擇。在JBoss上實現Webservice,maven和選擇

WS約定在WSDL中給出,所以我想生成它的存根。但是JBoss工具在WSDL上咆哮,而CXF wsdl2java樂於生成源代碼。我可以使用這些源代碼而不依賴於CXF,但使用原生JBoss WS堆棧?生成的類中的註釋甚至指向javax的東西(可以是4.選擇,因爲我可以用java 6創建WS而沒有附加的依賴關係?)

如何配置webservice?我還需要一個web.xml來定義一些servlet嗎?我需要哪些Maven依賴關係?

對不起,這顯然愚蠢的問題,但我做了很多搜索和閱讀,但我越讀越困惑我。 JBoss文檔或者全部是關於java beans和annotations和/或ant的說明,公共jboss maven回購是一團糟(一些WS的東西在jboss下,其他的在org.jboss.jbossws下,甚至是org.jboss.ws下的其他文物..)

任何指向howtos和or documentation的指針都非常受歡迎。

+0

雖然您不是EAP,但此文檔仍可幫助 http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/index.html – technoSpino 2011-01-19 16:23:58

回答

3

我會與CXF一起運行一場自包含的戰爭,並將jboss視爲一個servlet容器,並完全忽略jboss試圖提供的所有Web服務gunk。

然後,您只需按照常規的CXF指示進行wsdl第一個服務,最後得到一個漂亮的便攜式.war文件。它將/應該運行在jboss中(jboss可能會嘗試並提供一些額外的庫本身,但是你應該能夠設置某種類加載器包含策略,以確保它首先從上下文加載,而不是從jboss firstt加載。這給你

  1. 乾淨的WSDL優先發展
  2. 一個簡單的指令集遵循(只是CXF)
  3. Maven的回購協議,使意義
  4. 仍然使用JBoss,因爲有人認爲這是一個很好的想法

使用java 6標準webservices是一個選項,取決於你想在你的應用中使用什麼。我已經開始使用彈簧了,CXF彈簧的整合比jaxws-commons彈簧部分更整齊,更好。另外,如果你使用股票jaxws-ri,用於從wsdl生成的maven工具更加複雜,維護也更少。

+0

感謝您的答覆。不知何故,我忘了這個問題。在寫這篇文章的時候,我真的很煩惱,這個簡單的任務很難在JBoss中設置。很高興聽到別人分享我對JBoss的看法;)我們使用XCF解決了這個問題(如您所建議的),但我的同事選擇了XCF-JBoss堆棧。感謝您的回答。 – bert 2011-02-02 19:14:36