2012-10-09 66 views
1

我在我的项目中遇到问题。我们使用的是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) 

关于如何解决它的任何想法?

回答

0

我强烈建议不要为您的应用使用不同版本的Hibernate。

我建议你下载hibernate 4.1.3和其他相关的,用正确的罐子替换罐子& update module.xml。我们使用7.1.1和Hibernate 4.1.3 Core和Envers。

更换Envers module.xml

<module xmlns="urn:jboss:module:1.1" name="org.hibernate.envers"> 
    <resources> 
     <resource-root path="hibernate-envers-4.1.3.Final.jar"/> 
     <!-- Insert resources here --> 
    </resources> 

    <dependencies> 
    <module name="org.hibernate"/> 
    <module name="org.jboss.logging"/> 
    <module name="org.dom4j"/> 
    <module name="javax.api"/> 
    <module name="javax.persistence.api"/> 
    <module name="javax.transaction.api"/> 
    <module name="org.hibernate.commons-annotations"/> 
    <module name="org.javassist"/> 
    </dependencies> 
</module> 

Change also org/hibernate/main/ (we use hibernate core 4.1.3.Final) 
Change org/hibernate/validator/main (we use hibernate validator-4.2.0.Final) 
Change org/hibernate/commons-annotations (we use 4.0.1 Final) 

这应该是它。让我知道如果任何依赖性问题出现..

-Maddy