Java JAXB的优点/缺点和文档

Java JAXB的优点/缺点和文档,java,documentation,jaxb,Java,Documentation,Jaxb,我已经有一段时间没有在愤怒中使用Java了,所以如果这很愚蠢,请原谅我 我刚刚开始一个Java项目,我们正在使用JAXB对传入的XML字符串(来自Jetty服务器)进行反序列化。该项目仅在这种情况下使用JAXB JAXB的替代方案是什么? JAXB对这些备选方案的优缺点是什么 我在谷歌上搜索了一些内容,找到了很多参考资料,但是否有一个明确的来源,可以用来回答JAXB问题,或者人们只是看到人们在做什么,然后从那里进行解释 谢谢。我已经在几个项目中使用JAXB。我认为它最好的地方是它与诸如JAX-W

我已经有一段时间没有在愤怒中使用Java了,所以如果这很愚蠢,请原谅我

我刚刚开始一个Java项目,我们正在使用JAXB对传入的XML字符串(来自Jetty服务器)进行反序列化。该项目仅在这种情况下使用JAXB

JAXB的替代方案是什么?
JAXB对这些备选方案的优缺点是什么

我在谷歌上搜索了一些内容,找到了很多参考资料,但是否有一个明确的来源,可以用来回答JAXB问题,或者人们只是看到人们在做什么,然后从那里进行解释


谢谢。

我已经在几个项目中使用JAXB。我认为它最好的地方是它与诸如JAX-WS和JAX-RS(JSR311,Restful规范)等新技术的集成

如果用Jetty处理传入的XML作为字符串,我会认真考虑JAX-RS。它为您处理所有JAXB绑定的东西,并且只与对象一起工作。


对于REST风格和SOAP web服务,我非常满意通过CXF使用JAXB。

对于JAXB的替代方案,您可能需要查看XFire()或Axis2()。这似乎是两种流行的替代方案,我相信现在两者都是JAX-WS。

我发现JAX-B非常有用,实际上比许多替代方案都更喜欢它,特别是如果我从头开始,从Java对象生成模式,而不是从模式生成Java对象

根据我的经验,无论出于何种原因,我发现仅仅通过谷歌搜索很难获得好的文档。JAX-B下载中提供了最好的电子文档,您还可以在其中找到许多示例。“”也有一个很好的概述

至于替代方案,有:

还有可能更多。

XMLBean出现在我的脑海中()


JAXB的优点之一是它现在与JDK6捆绑在一起。生成输出非常紧凑且高效。我们目前正在将所有XMLBean实现转换为使用JAXB2。我们所看到的最大缺点是缺少与XSD相关的操作。

如果您有一个用于尝试解析的xml的对象模型,这将非常好。

我尝试了许多列出的建议,并且更喜欢简单而不是全部。它在总体意义上是相对较新的,但成熟和稳定,并且似乎已经考虑了来自其他XML框架的许多抱怨。我强烈建议阅读头版,如果可能的话,在你的项目中给它一个快速的概念验证原型


其他替代品可以是Castor、JibX、XMLBeans或JDOM。

事实上我用过Castor。在xml绑定的情况下,它比JAXB更好。它提供了映射现有java bean的功能。

请看这里:用于JSR-222。 这个Java规范请求指定了标准(非免费)。

JAXB的一个大缺点(如果在传输对象中使用注释)是Android不支持JAXB注释(类未知),您无法手动添加它们。
另请参见

XStream无法正确处理名称空间。我认为这是一个主要的缺点。我已经用JAXB发现了另一个大的优点,那就是现在所有JAX-WS绑定的事实。它总是很好,不必添加吨的第三方扩展到您的项目;大多数其他XML流技术都会要求您添加Apache Commons。上次我使用XML Beans时,它泄漏了大约100%的实例化类。当我试图找出为什么我看了一些我见过的最疯狂的源代码时,我们停止了使用它。那是2-3年前的事了,所以现在可能更好。JAXB现在也是JAX-RS的实际绑定,用于在Java中构建REST服务。JAXB还能够映射现有的Java bean。