我已经(通过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类加载还是支持这种方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)