我在我的项目中遇到问题。我们使用的是JBoss7.1.1,我们想在4.1版本中使用envers。版本4.1中的Envers需要4.1版本的Hibernate。不幸的是,jboss 7.1.1包含较老的休眠和Envers模块。如何用hibernate 4.1和Envers 4.1来配置JBoss 7.1.1?
我有两个选择:
在JBoss中更换模块(放在那里新envers &休眠)。问题是每个运行这个应用程序的jboss都必须为该项目“调整”(有点痛苦)。
或者:
排除JBoss的模块,并使用库从WEB-INF/lib目录内的战争。
<jboss-deployment-structure>
<ear-subdeployments-isolated>true</ear-subdeployments-isolated>
<deployment>
<!-- Exclusions allow you to prevent the server from automatically adding some dependencies -->
<exclusions>
<module name="org.hibernate"/>
<module name="org.hibernate.envers"/>
</exclusions>
</deployment>
</jboss-deployment-structure>
我已经改变依赖于从行家提供的编译,它应该工作,右: 我用排除的模块?
但现在我得到这个异常:
Caused by: java.lang.IllegalArgumentException: interface org.hibernate.annotations.Columns is not visible from class loader
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:353) [classes.jar:1.6.0_35]
at org.hibernate.annotations.common.annotationfactory.AnnotationFactory.create(AnnotationFactory.java:46)
at org.hibernate.cfg.annotations.reflection.JPAOverridenAnnotationReader.buildColumns(JPAOverridenAnnotationReader.java:1383)
关于如何解决它的任何想法?