【问题标题】:JAXB ignores @XmlAccessorFactory in package-info.javaJAXB 忽略 package-info.java 中的 @XmlAccessorFactory
【发布时间】:2023-03-25 17:20:01
【问题描述】:

我们已经编写了自己的 AccessorFactory 来将我们的 POJO 序列化为 XML,因此我们创建了 package-info.java 并在该文件中添加了注解 @XmlAccessorFactory。

@XmlAccessorFactory(MeiAccessorFactory.class)
package com.meicpg.ti.domain;

我们所有的POJO都用@XmlAccessorType(XmlAccessType.NONE)注解,并且我们已经用@XmlElement注解了所有必须序列化的字段

大多数时候序列化运行良好,但有时在开发人员的机器上(在生产中我们没有这个问题,而在 Unix 上工作的开发人员)POJO 没有序列化。

我尝试使用@XmlAccessorFactory 注释其中一个 POJO,并且它已被正确序列化。在另一个 POJO 上,我在 getter 上移动了 @XmlElement 注释,它也已正确序列化。

在我的所有 POJO 上应用此解决方案之一之前,我想知道是否有人已经遇到过这种奇怪的行为,并找到了忽略 package-info.java 中的注释的原因。

谢谢。

【问题讨论】:

  • @XmlAccessorFactory 是一个有点晦涩难懂的 JAXB RI 扩展,您有需要这样做的特定用例吗?
  • 感谢您的回答。我尝试在 package-info.java 中添加其他注释(例如 @XmlAccessorType(XmlAccessType.NONE),因为我们在每个 POJO 中都使用它),并且似乎 package-info 中的所有注释都被忽略了。有什么想法吗?
  • 我添加了一个应该有帮助的答案:stackoverflow.com/questions/21314322/…

标签: java xml jaxb xml-serialization


【解决方案1】:

我尝试在 package-info.java 中添加其他注释(例如 @XmlAccessorType(XmlAccessType.NONE) 因为我们在每个 POJO 中都使用它), 并且似乎 package-info 中的所有注释都被忽略了。任何 想法?

如果package-info 中的注释被忽略,请确保以下几点:

  1. 您的包注释在一个名为 package-info.java 的文件中定义。
  2. 您的package-info.java 源文件正在编译为package-info.class
  3. package-info 注释仅适用于该包中的类。您不会看到它们影响其他包中的类,因此您可能需要其他 package-info 类。

【讨论】:

  • 感谢您的建议。我所有的 package-info.java 源文件都没有被编译。这是我正在使用的 ant 版本的已知问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多