![](/img/trans.png)
[英]Turn off CXF Aegis Inheritance support / Use Inheritance with DataContractSerializer?
[英]Within CXF, why use any other binding than JAXB? (MTOM attachments, Aegis, XMLBeans,…)
我一直在使用Apache CXF,特別是它支持的各種數據綁定:JAXB(默認),MTOM,Aegis和XMLBeans。 由於所有這些都得到支持,我想每個都有其優點。 我想出了這些:
wsdl2java
工具,因此它不太適合“合同優先”開發,即從WSDL開始並從中生成Java代碼。 我發現這個問題將JAXB和XMLBeans並置,但是並沒有給出全面的概述:
除了這些天真,先驗的考慮之外,您是否有任何血統和經驗可以支持除JAXB之外的任何其他綁定的使用? 我是從CXF的角度問的,但是如果有其他選擇(例如Castor),請不要猶豫。
如果要從頭開始創建WSDL首個Web服務,那么我絕對建議95%的時間堅持使用JAXB(甚至更高)。 它絕對是CXF中經過最好測試的數據綁定,並且性能很好。
其他數據綁定通常出現在以下兩種情況之一:
1)Java的第一個用例是,您已經用Java編寫了一些內容,希望將其作為Web服務公開,而幾乎不需要修改代碼。 Aegis在這里具有自己的優勢,因為它可以處理比JAXB更廣泛的事務。 但是,如果您可以修改代碼,則添加JAXB批注通常並不難。 如果您大部分都是普通的“豆”,那沒什么大不了的。
2)使用特定映射的現有應用程序。 如果您有期望使用XMLBeans Bean的應用程序(如果使用CXF的2.3-SNAPSHOT則為SDO Bean,如果遵循GSoC項目則為JiBX Bean),那么使用其他數據綁定可以通過刪除JAXB到那些對象模型的任何所需映射來提供幫助。
希望能有所幫助。
請記住, JAXB是一個規范,因此有多種實現方式: Metro (參考實現), MOXy (我是技術負責人)等。
可以從Java類或XML模式開始使用JAXB。 如果您有無法修改的類,則單個JAXB實現會提供擴展來處理該類。 請參閱MOXy的可外部化元數據:
JAXB旨在與MTOM附件一起使用,請參閱附件marshaller / unmarshaller。
MOXy具有基於XPath的映射,可以完全控制對象到XML的綁定,請參見:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.