2013-02-18 193 views
28

如果有人幫助我理解axis2 Web服務和CXF Web服務之間的差異,我將不勝感激。Axis2 web服務和CXF Web服務之間的差異

+4

[Apache CXF和Axis之間的區別]可能的重複(http://stackoverflow.com/questions/1243247/difference-between-apache-cxf-and-axis) – 2013-02-18 10:14:08

回答

46

Axis2 Web服務和CXF Web服務之間的主要區別如下:

  1. CXF擁有的WS-Addressing,WS-Policy的,WS-RM,WS-Security的, 和支持WS-我BasicProfile。除了 WS-Policy之外,Axis2還支持其中的每一種,即將推出的版本將支持WS-Policy。

  2. CXF是用Spring寫的; Axis2不是。

  3. Axis2支持更廣泛的數據綁定,包括XMLBeans, JiBX,JaxMe和JaxBRI以及它自己的本地數據綁定ADB。 請注意,JaxME和JaxBRI的支持在Axis2 1.2中仍被認爲是實驗性的 。 CXF目前僅支持JAXB和 Aegis;支持XMLBeans,JiBX和Castor將進入CXF 2.1。

  4. Axis2支持多種語言 - 除Java版本外還有一個C/C++版本 。

雖然在比較這些框架時,查看開發Web服務的方法和比較功能一樣重要。從開發人員的角度來看,這兩個框架的行爲都非常不同。 Axis2採取了一種方法,使它在很多方面類似於微型應用服務器。 Axis2附帶了一個可部署在Tomcat等servlet容器上的WAR,該容器旨在使Web服務更易於管理和即時部署。 Axis2 Web管理模塊允許在應用程序運行時動態配置Axis2 - 可以上載,激活或取消激活新服務,並且可以更改其參數。管理UI還允許在一個或多個正在運行的服務上啓用模塊。將UI用於這些目的的唯一缺點是通過它進行的配置更改不是持久性的 - 當servlet容器重新啓動時它們會消失。

Axis2適用於獨立於其他應用程序的獨立Web服務,並且提供了多種功能,以及隨着時間推移通過其模塊化體系結構添加更多功能的良好模型。有些開發人員可能會發現,對他們的需求來說有點過於繁瑣或者很重要。這些開發人員可能更願意看看Apache CXF。

CXF專注於開發人員的人機工程學和嵌入性。大多數配置都是通過API來完成的,而不是繁瑣的XML文件,Spring集成受到了強烈的強調,包括對Spring 2.0的支持,以及CXF的API和Spring配置鏡像。 CXF強調代碼優先設計,使用簡單的API來使現有應用程序的服務開發更容易(並且其嵌入性也有所幫助)。

無論您選擇哪種框架,您都將擁有一個積極穩定的開源社區。這些框架中的每一個都有企業支持:Axis2由WSO2和Iona的CXF支持。兩個都有活躍的開發者社區。 Axis2已經走過了更長的時間,但CXF正在迅速趕上。我的建議是:如果多語言支持很重要,Axis2是明確的選擇。如果您關心一個專注於Java的實現,並緊密集成到像Spring這樣的項目中,那麼CXF是一個更好的選擇,特別是將Web服務嵌入到其他程序中。如果這些項目中的新功能不重要,並且您對Axis1相對滿意,則應考慮繼續使用此功能,並跟上最新的維護版本,直到您有商業理由進行遷移。

+0

從我的角度來看,CXF是無用的現在嘗試將其用於客戶端開發。除非我使用系統屬性,否則我無法定義連接池參數?這是什麼類型的愚蠢?這曾經在Axis2中。 – 2015-12-01 16:19:00