2012-10-09 100 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