2008-11-17 67 views
75

我正在研究/比較用於Web服務的CXF和Spring-WS?我需要同時作爲WS的提供者和消費者。簡而言之,我被告知Spring-WS更具可配置性,但CXF更容易啓動和運行。這個問題是主觀的,但會幫助我指導我的研究。哪個框架比較好CXF或Spring-WS?

  • 你對這些框架有什麼經驗?
  • 你有沒有遇到任何陷阱與任何框架?
  • 您是否發現過其他可能未提供的有用功能?

回答

20

我覺得最大的區別就是春天-WS是只有「契約優先」,而我相信CXF是正常的「合同最後」。

http://static.springsource.org/spring-ws/sites/1.5/reference/html/why-contract-first.html

合同,去年開始使用Java代碼,因此它通常是上手容易。

但是,它創建的WSDL往往更脆弱。

+16

JAX-WS支持契約優先我相信,這就是人們如何進行認真的開發來使用它。所以這絕對不是區分JAX-WS堆棧和Spring WS的好方法。實際上,Spring WS並沒有與JAX-WS進行比較,Spring WS只是一個簡約的WS堆棧。 – 2010-09-09 04:13:29

12

我們有CXF及其前身XFire的經驗,我可以推薦它作爲堅實,快速(WS創建和執行)和可靠的框架。

關於您可以用CXF會見看到我的帖子https://stackoverflow.com/questions/289977/recommended-framework-for-java-web-services#290205 和我一起toolkit同意,框架之間最大的區別是思想上的問題:什麼是第一個代碼(即接口)或合同(即WSDL)。見一些細節在這裏:

32

CXF不以任何方式阻止您從合同開始(WSDL)。我使用這兩種產品來構建Web服務。

在CXF中,我使用了Maven和Maven插件,調用了目標來生成我然後實現的SEI(接口)。在實現了包含實際服務邏輯並配置我的bean實現的接口之後,然後我讓Maven將它打包成一個用於部署的war文件。整個練習不可能更簡單。

我不認爲Spring-WS提供的任何優勢都超過了缺少JAX-WS。 CXF已經可以讓你使用Spring來連接你的bean,並且也完全實現了JAX-WS。

72

關於Apache CXF:

  • CXF支持多種標準,包括SOAP,在WSI基本概要,WSDL,WS-Addressing的,的WS-Policy,WS-ReliableMessaging的,WS-安全,WS-安全,和WS -SecureConversation。
  • Apache CXF提供了contract-last(從Java開始)和Contract-first(從WSDL開始)兩種方法。
  • Apache CXF實現了JAX-WS和JAX-RS。

關於春天WS:

  • 春WS提供了 「唯一」 契約優先,從XSD架構開始。
  • Spring WS支持SOAP,WS-Security和WS-Addressing。

所以,在最後,我看到了春天WS作爲最小 Web服務框架,但認爲它沒有(在我看來)有超過阿帕奇CXF任何優勢(這與Spring集成了非常好) 。在兩者之間,我會選擇Apache CXF。

4

的Apache CXF:

關鍵優勢:

❶使用最廣泛的Web服務標準現在;改進過AXIS2,現在逐漸被阿帕奇CXF

❷直觀&易於更換,以使用(相比於AXIS2需要更少的編碼)

❸前端,如JAX-WS的清潔分離,從核心代碼

❹與JAX-WS,JAX-RS完全符合&別人

在所有可用的框架❺最佳性能與最低的計算開銷

❻支持各種各樣的前端模型

❼同時支持JAX-WS & JAX-RS(用於RESTful服務)

❽支持JBI & SDO(在AXIS2不支持)

❾兼容與Spring框架

關鍵問題:

❶不支持編排但WS交易

❷不支持WSDL 2。0尚未

春WS:

關鍵優勢:

❶最好由框架約束支持合同優先的Web服務開發方法

❷地強制執行的標準&最佳實踐方面(沒有辦法走出去&因此限制也是如此)

❸支持Spring註解以及JAX-WS

❹從開發者的角度最少的代碼

❺最佳對準彈簧技術堆棧(也是類似的架構堆棧的Spring MVC)包括Spring安全

關鍵關注:

❶WS-種類最少*支持(不完全符合JAX-WS)規格

❷Spring提供了自己的標準&因此其他兼容Java的框架支持更好的標準支持

❸只支持契約優先的Web服務開發模式

來源:https://dzone.com/articles/apache-cxf-vs-apache-axis-vs

+5

應該提到的答案來自這裏:https://dzone.com/articles/apache-cxf-vs-apache-axis-vs – 2016-04-13 12:44:59