Within CXF, why use any other binding than JAXB? (MTOM attachments, Aegis, XMLBeans,…)

I have been playing around with Apache CXF, in particular the various data bindings it supports: JAXB (the default), MTOM, Aegis and XMLBeans. Since all of these are supported, I suppose each has its merits. I came up with these:

  • Obviously, MTOM is to be preferred where large attachments are involved.
  • JAXB depends on annotations, so it is less suited when modification of classes is restricted.
  • Aegis has no wsdl2java tool, so it is less suited for "contract-first" development, i.e. start with a WSDL and generate your Java code from that.
  • It appears that Aegis provides slightly more control over the mapping between Java classes and XML through its declarative syntax in Class.aegis.xml files. On the other hand, I couldn't devise of any scenarios where JAXB did not do the trick.

I found this question juxtaposing JAXB and XMLBeans, but it doesn't give a comprehensive overview:

JAXB vs Apache XMLBeans

Besides these naive, a priori considerations, do you have any blood-and-guts experiences that would support the use of any other binding besides JAXB? I'm asking from a CXF point of view, but if any other options come to mind (e.g. Castor) please don't hesitate to elaborate.

7
задан Community 23 May 2017 в 12:01
поделиться