使用JBoss(6.2.0 GA)的EJB Jar中忽略了Jackson 2批注

使用JBoss(6.2.0 GA)的EJB Jar中忽略了Jackson 2批注,第1张

使用JBoss(6.2.0 GA)的EJB Jar中忽略了Jackson 2批注

我已经(通过IDE调试器和添加日志记录)跟踪到了用于war模块和ejb jar模块的不同类加载器。根据文档,这是JBoss AS 7的预期默认行为。战争使用
war ModuleLoader,而ejb jar使用 耳朵 ModuleLoader。

注释的类会发生什么,取决于哪个类加载器加载注释。另请参阅:
关于SO的类似问题

“差异”是指它们是相同的注释,来自相同的jar和版本,但是根据等价合同,它们不被视为等同,其哈希码也不同,因此即使显示为保留,
JacksonAnnotationIntrospector 也不会定位注释针对JPA POJO类。

解决方法

我已通过使Ear ModuleLoader成为jackson 2的通用加载器来解决此问题。我通过使 com.fasterxml.jackson.core
databind
依赖项在war&ejb jar中 提供了 作用域,并将其标记为常规编译作用域来解决此问题。依赖于耳朵的POM。

尽管Jboss AS类加载使用 jboss-deployment-structure
或MANIFEST.MF来实现几乎相同的目的,但在这里JBoss AS类加载还是支持这种方法。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5616418.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存