新一代的 web services 框架如 axis2、cxf 都是由現有的專案中逐漸演化而來的,axis2 是由大家熟悉的 axis 1.x 系列演化過來,而 apache cxf 則是由 celtix 和 xfire 專案整合而生,並且剛剛發布了 2.0.2 的最新版本,不過仍是 apache 的乙個孵化專案。
axis2 是對 axis 進行了徹底的重寫的乙個新專案了,它使用了新的模組化架構,更方便於功能性的擴充套件等等。
apache cxf 則是由 xfire 和 celtix 兩個現有的專案進行了重組。
問題:如果現有的應用程式是基於 axis 1.x、xfire 或者 celtix 的話,那應該怎麼辦?都遷移到這些新的框架上去嗎?但是即使是要遷移,那應該遷移到哪個框架上去呢?
如果是編寫乙個新的 web services 應用程式的話,就不存在遷移的問題了,但是哪個框架是你應當選擇進行使用的呢?哪個比哪個更好呢?
對於現在的應用程式的遷移,如果你的應用程式是穩定而成熟的,並且在可預知的未來的情況下,只要很少的一些需求變更要做的話,那麼儲存你的體力,不要去做「勞民傷財「的遷移工作了。
如果你的現有應用程式bug纏身,效能,功能等等都一片糟糕的話,那就要考慮遷移了,那選哪個框架呢?先比較一下它們的不同之處:
1、apache cxf 支援 ws-addressing、ws-policy、ws-rm、ws-security和ws-i basicprofile
2、axis2 支援 ws-addressing、ws-rm、ws-security和ws-i basicprofile,ws-policy將在新版本裡得到支援
3、apache cxf 是根據spring哲學來進行編寫的,即可以無縫地與spring進行整合
4、axis2 不是
5、axis2 支援更多的 data bindings,包括 xmlbeans、jibx、jaxme 和 jaxbri,以及它原生的 data binding(adb)。
6、apache cxf 目前僅支援 jaxb 和 aegis,並且預設是 jaxb 2.0,與 xfire 預設是支援 aegis 不同,xmlbeans、jibx 和 castor 將在 cxf 2.1 版本中得到支援,目前版本是 2.0.2
7、axis2 支援多種語言,它有 c/c++ 版本。
8、apache cxf 提供方便的spring整合方法,可以通過註解、spring標籤式配置來暴露web services和消費web services
如何抉擇:
1、如果應用程式需要多語言的支援,axis2 應當是首選了;
2、如果應用程式是遵循 spring 哲學路線的話,apache cxf 是一種更好的選擇,特別對嵌入式的 web services 來說;
3、如果應用程式沒有新的特性需要的話,就仍是用原來專案所用的框架,比如 axis1,xfire,celtrix 或 bea 等等廠家自己的 web services 實現,就別勞民傷財了。
Nginx和Tengine哪個更好?
都知道 nginx 的負載均衡很好,但是還出現了乙個tengine,那麼這兩個哪個更好更優秀呢?要搞明白這個問題,首先你需要搞清楚tengine是什麼?nginx 已是非常熟悉了,此處不再贅述。tengine 是由 網發起的 web 伺服器專案。它在 nginx 的基礎上,針對大訪問量 的需求,新增...
Arraylist和Map哪個效能更好
如果arraylist 和map儲存的元素都比較多。那麼在取元素方面,arraylist要慢很多。但是這也不是絕對的,因為arraylist底層基於陣列,如果你明確的知道你要取的元素在哪個下標上,那麼arraylist也是相當的快。但是如果你不清楚,只能通過迭代內部全部元素然後進行條件判斷查詢,那麼...
SAP和Oracle EBS學哪個更好些?
對於初入或者還在門外的erp相關人員而言,對於sap和oracle erp產品的比較和職業發展,主流的答案有幾點 1.產品特性 sap勝在穩定且完備的管理思想,覆蓋了大部分500強客戶 oracle勝在開放但是想比如同級別的sap erp bug偏多,不穩定。2.顧問錢途 以從業年限相同這個單一標準...