標籤:
在Celtix 和XFire 宣布合并的同年,另一個著名開源Web 服務架構Axis 的後繼者Axis2 也誕生了。Axis2 並非Axis 的2.0 版,而是完全重寫了Axis 的新項目。作為功能和背景都極其相似的兩個項目,人們難免會將它們相提並論。在著名的Java 企業開發網站TheServiceSide 上就有一篇名為“Axis, Axis2 and CXF: Survey theWS Landscape”(地址:http://www.theserverside.com/tt/articles/content/AxisAxis2andCXF/article.html)的文章對這兩個項目進行了比較,主要內容如下。
1.在特性方面:
C X F 支援W S - A d d r e s s i n g 、W S -Policy、WS-RM、WS-Security和WS-I BasicProfile。Axis2支援除了WSPolicy之外的所有這些標準,WS-Policy預計會在未來版本中得到支援;
CXF可以方便地和Spring整合在一起,Axis2不行;
Axis2支援範圍更廣的資料繫結,包括XMLBeans、JiBX、JaxMe、JaxBRI,以及它自己的資料繫結ADB。在Axis21.2 版中,JaxME和JaxBRI尚處於實驗階段。目前,C X F只支援J A X B和Aegis,對XMLBeans、JiBX和Castor的支援將在CXF 2.1版中實現;
Axis2支援多語言,除了Java版本,尚有C/C++版本。
2.在開發方面:
Axis2更像一個微型伺服器。Axis2被打包成一個WAR,可部署到任何Servlet容器中,為了更方便地在運行中管理和部署服務進行專門的設計。
CXF更專註於對開發人員友好及可嵌入性。大部分配置只需使用API即可完成,與Spring緊密整合。CXF強調代碼優先的服務開發方式。
3.建議:如果需要多語言支援,那麼就採用Axis2;如果考慮到使用Java、與Spring整合,或將服務嵌入到其他程式中,那麼CXF更好。
當然,並不是所有人都說好。例如,在國內的一些論壇上,就有開發人員抱怨CXF 的入門比起XFire 來要複雜得多。這是可以理解的,畢竟CXF本身也比XFire 要複雜得多。為了協助Celtix 和XFire 的開發人員向新工具的遷移,其官方網站也提供了相應的遷移指南。另外一個常見的問題是和Spring AOP 相關的(如事務、安全),這在官方網站的FAQ 中也有說明。
[轉載]Axis2 and CXF的比較