为啥从 JAXB 参考实现中删除了 AnnotationReader?

Posted

技术标签:

【中文标题】为啥从 JAXB 参考实现中删除了 AnnotationReader?【英文标题】:Why has AnnotationReader been removed from JAXB reference implementation?为什么从 JAXB 参考实现中删除了 AnnotationReader? 【发布时间】:2014-11-20 18:26:05 【问题描述】:

com.sun.xml.bind.v2.model.annotation.AnnotationReader 类是 jaxb-impl 2.1.6 的一部分,但已在 2.1.7 中删除。有人知道为什么吗?

【问题讨论】:

【参考方案1】:

JAXB 工件在2.2.11 中进行了重组,因此一些类在jaxb-runtimejaxb-core 之间移动。 AnnotationReader 不是唯一一个。主要原因是(可能)由于依赖结构需要重新排列一些类的 mavenisation。

不幸的是,旧工件 com.sun.xml.bind:* 的依赖结构有点错误,因此如果您在使用 jaxb-impl 之前还需要 jaxb-core。如果这是您的问题,您应该转移到新的 org.glassfish.jaxb:* 工件,因为它们具有正确的结构。 org.glassfish.jaxb:jaxb-coreorg.glassfish.jaxb:jaxb-runtime 的依赖项,它取代了旧的 org.glassfish.jaxb:jaxb-impl

另见:

Which artifacts should I use for JAXB RI in my Maven project?

【讨论】:

【参考方案2】:

AnnotationReader 现在是jaxb-core 的一部分。

【讨论】:

以上是关于为啥从 JAXB 参考实现中删除了 AnnotationReader?的主要内容,如果未能解决你的问题,请参考以下文章

从 xml/json JAXB 中删除 xsi:type 信息?

即使在JAXB中从XmlAdapter返回null之后,也不会从XML中删除Tag

Unmarshal NullPointerException(带有 JAXB 参考实现)

在 JAXB 编组时删除命名空间前缀

为啥 JAXB 需要一个无参数构造函数来编组?

java JAXB注解