繁体   English   中英

JAXB package-info.java 声明在单独的 maven 模块中被忽略

[英]JAXB package-info.java declarations are ignored in separate maven modul

我使用package-info.java来指定@XmlAccessorType(XmlAccessType.NONE)和一些使用@XmlJavaTypeAdapters xml java 适配器。 模型对象(带有 JAXB 注释)被放置在由其他模块共享的单独的 maven 模块中。 如果模型对象位于单独的 maven 模块中,则不会发现package-info.java的配置。 如果我出于测试目的将模型对象移动到同一个 maven 模块,则一切正常。 我认为从JAXBContext角度来看,单独的 maven 模块可以被认为等同于 3rd 方库。 我使用JDK1.7 JAXB 参考实现。 任何想法配置可能会有所不同?

我也遇到了这个问题,在我的情况下,来自 package-info.java 的合格/不合格属性被忽略了。 我设法找到了两种方法来解决这个问题:

  • 就像 Pavla 写的那样,在本地使用 package-info.java 复制所有 JAXB 类
  • 包含模块作为具有编译范围的依赖项(这给出了类在模块中的类似结果。在我的情况下,我使用 JAXB 类创建了单独的 jar 库)

我还发现它不仅在创建 WebServices 的情况下才起作用(在不同的模块中创建对象并发送到 WS 工作正常)。

我正在使用 Jbossas7.1.1 和 cxf 2.4.6。 在注册服务时,Jboss 从 JAXB 创建了 wsdl(在我的例子中是路径 /opt/jboss/jboss-as-7.1.1.Final/standalone/data/wsdl/module.war/SubmitMessage.wsdl)。 在本地设置文件正确生成。

任何想法为什么创建 WS 的行为是这样的?

我最近遇到了这个问题,实际问题(Java 8,即不涉及 Java 模块)是我在类路径上有两个 *.jar 文件,它们都包含相同的包 - 在一个 JAR 中,有 package-info.class使用 JAXB 注释,而在另一个注释中则没有。 在这种情况下,我猜是否发现 package-info.class 文件取决于类路径排序(这是非常脆弱的,并且只是半确定性的)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM