如何使用hibernate 4.1和Envers 4.1配置JBoss 7.1.1?

问题描述 投票:1回答:1

我的项目有问题。我们正在使用JBoss7.1.1,我们希望在4.1版中使用envers。版本4.1中的Envers在4.1版中需要Hibernate。不幸的是,jboss 7.1.1包含较旧的hibernate和Envers模块。

我有2个选择:

在JBoss中更改模块(放置新的envers和hibernate)。问题是运行此应用程序的每个jboss都必须为该项目“调整”(有点痛苦)。

要么:

排除JBoss模块并在war-war中使用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>

我已经将maven中的依赖项从提供更改为编译,它应该可以工作,对吧?

但现在我得到了这个例外:

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)

关于如何修复它的任何想法?

hibernate jboss hibernate-envers
1个回答
0
投票

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

我建议你下载hibernate 4.1.3和其他相关的,用正确的jar替换jars和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

© www.soinside.com 2019 - 2024. All rights reserved.