首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CXF中,为什么要使用JAXB以外的任何其他绑定?(MTOM附件,宙斯盾,XMLBeans,.)

在CXF中,为什么要使用JAXB以外的任何其他绑定?(MTOM附件,宙斯盾,XMLBeans,.)
EN

Stack Overflow用户
提问于 2010-09-03 13:11:12
回答 2查看 6.6K关注 0票数 7

我一直在使用Apache,特别是它支持的各种数据绑定: JAXB (默认值)、MTOM、Aegis和XMLBeans。由于所有这些都得到支持,我认为每一项都有其优点。我想出了这些:

  • 显然,在涉及大型附件的情况下,MTOM是首选。
  • JAXB依赖于注释,因此当类的修改受到限制时,它就不太适合了。
  • Aegis没有wsdl2java工具,因此它不太适合“契约优先”开发,即从WSDL开始并由此生成您的Java代码。
  • 看起来,Aegis通过Class.aegis.xml文件中的声明性语法,对Java和XML之间的映射提供了更多的控制。另一方面,我无法设计出JAXB没有做到这一点的任何场景。

我发现这个问题与JAXB和XMLBeans并列,但它并没有给出一个全面的概述:

JAXB与Apache XMLBeans

除了这些天真的、先验的考虑之外,您是否有任何支持使用JAXB以外的任何其他绑定的血液和内脏体验?我要求从CXF的角度,但如果有任何其他选择(如Castor),请不要犹豫,详细说明。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-03 17:43:49

如果从头开始创建WSDL第一次web服务,那么我肯定会建议坚持使用JAXB 95%的时间(甚至更高)。它无疑是CXF中测试过的最好的数据库,并且执行得很好。

其他数据库通常用于以下两种情况中的一种:

1) Java首先使用的情况是,您已经用Java编写了一些东西,您希望将其公开为一个web服务,而对代码几乎没有任何修改。宙斯盾在这里有它的优势,因为它的设计目的是能够处理比JAXB更广泛的事情。但是,如果您可以修改代码,添加JAXB注释通常并不难。如果你有很多普通的“豆子”,那也没什么大不了的。

2)使用特定映射的现有应用程序。如果您有希望使用XMLBeans bean的应用程序(如果使用CXF的2.3快照,则使用XMLBeans,或者如果遵循GSoC项目,则使用JiBX bean),那么使用其他数据库可以帮助从JAXB删除到这些对象模型的任何所需的映射。

希望这能帮点忙。

票数 4
EN

Stack Overflow用户

发布于 2010-09-03 19:33:52

请记住,JAXB是一种规范有多个实现:Metro (参考实现,MOXy (我是技术主管)等等。

JAXB可以从Java类或XML模式开始使用。如果您有无法修改的类,那么单独的JAXB植入提供扩展来处理这个问题。请参见MOXy的可外化元数据:

  • http://wiki.eclipse.org/EclipseLink/Examples/MOXy/EclipseLink-OXM.XML

JAXB被设计用于处理MTOM附件(参见附件封送器/解封送件)。

MOXy具有基于XPath的映射,它提供了对对象到XML绑定的完全控制,请参阅:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3636051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档