我一直在使用 Apache CXF,尤其是它支持的各种数据绑定:JAXB(默认)、MTOM、Aegis 和 XMLBeans。由于所有这些都得到支持,我想每个都有其优点。我想出了这些:
- 显然,在涉及大型附件的情况下,MTOM 是首选。
- JAXB 依赖于注解,因此在类的修改受到限制时不太适合。
- Aegis 没有
wsdl2java
工具,因此不太适合“契约优先”开发,即从 WSDL 开始并从中生成 Java 代码。 - Aegis似乎通过其在Class .aegis.xml文件中的声明性语法对 Java 类和 XML 之间的映射提供了更多的控制。另一方面,我无法设计出任何 JAXB 无法发挥作用的场景。
我发现这个问题并列 JAXB 和 XMLBeans,但它没有给出全面的概述:
除了这些幼稚的先验考虑之外,您是否有任何血腥经验可以支持使用除 JAXB 之外的任何其他绑定?我是从 CXF 的角度询问的,但如果想到任何其他选项(例如 Castor),请不要犹豫,详细说明。