Java Hibernate Envers审核监听器未注册,即使实体用@Audit注释

Java Hibernate Envers审核监听器未注册,即使实体用@Audit注释,java,jpa,annotations,hibernate-annotations,hibernate-envers,Java,Jpa,Annotations,Hibernate Annotations,Hibernate Envers,我有Spring4.1.2、Hibernate4.2.18、JBoss6应用程序。我已配置实体和自定义修订实体。但仍然是Envers侦听器未注册到listenerRegistry 我尝试调试enverse源代码,发现源代码[EnversIntegrator.integrate方法]正在跳过侦听器,因为它找不到任何审核表 我也找到了根本原因。当我深入研究时,AnnotationsMetaDataReader.getDefaultAudited方法中的代码“clazz.getAnnotation(A

我有Spring4.1.2、Hibernate4.2.18、JBoss6应用程序。我已配置实体和自定义修订实体。但仍然是Envers侦听器未注册到listenerRegistry

我尝试调试enverse源代码,发现源代码[EnversIntegrator.integrate方法]正在跳过侦听器,因为它找不到任何审核表

我也找到了根本原因。当我深入研究时,AnnotationsMetaDataReader.getDefaultAudited方法中的代码“clazz.getAnnotation(Audited.class)”总是返回null。 我确信实体类中存在已审核的注释


这似乎很奇怪,因为它在另一个示例应用程序中工作得很好。

这似乎是一个类加载问题。请确保已准备好所需的环境


您的应用程序是否在战争中使用Jboss模块“org.hibernate”而不是HibernateJAR?如果是这样,请在应用程序中配置jboss模块“org.hibernate.envers”。

这解决了我的问题。谢谢示例应用程序正在工作,因为它根本没有配置为使用jboss模块。Envers类是从war中可用的jar加载的。