当前位置: 首页 > 知识库问答 >
问题:

如何使用Hibernate4.1和Envers4.1配置JBoss7.1.1?

长孙弘壮
2023-03-14

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

我有两个选择:

更改JBoss中的模块(放置新的环境

或:

在war中排除JBoss模块并使用WEB-INF/lib中的libs。我使用以下方法排除了模块:

<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)

有没有办法解决这个问题?

共有1个答案

史俊德
2023-03-14

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

我建议您下载hibernate 4.1.3和其他相关版本,更换JAR

替换Enversmodule.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) 

应该是这样。。如果出现任何依赖性问题,请告诉我。。

-玛蒂

 类似资料:
  • 我正在用Java Swing制作一个游戏,其中有一个大POJO用来存储游戏的运行时数据,比如精灵的位置、当前显示的效果等等。我希望能够将其作为JSON保存到一个文件中,然后在以后重新构建。我发现Gson应该就是这么做的,但到目前为止我还没能让它工作。我总是遇到这样一个问题:它无法使嵌套在存储类中的某些变量可访问。 以下是我目前使用Gson的方式: 以下是我当前尝试使用时收到的错误消息: 是我在开头

  • 问题内容: 我正在尝试使用screenbuilder和JavaFX和scenebuilder设置IntelliJ IDEA。我俩都很精打细算,但是当我创建一个新的JavaFX项目,打开fxml文件并切换到scenebuilder选项卡时,我收到了很长的错误消息来代替scenebuilder UI: 我认为有一些误解,但我不确定要检查什么。有人可以指出正确的方向吗? 问题答案: 您必须在〜/ .In

  • 我正在用Java Swing制作一个游戏,其中有一个大POJO用来存储游戏的运行时数据,比如精灵的位置、当前显示的效果等等。我希望能够将其作为Json保存到一个文件中,然后在以后重新构建。我发现Gson应该就是这么做的,但到目前为止我还没能让它工作。我总是遇到这样一个问题:它无法使嵌套在存储类中的某些变量可访问 以下是我目前使用Gson的方式: 这是当我尝试使用时,我当前收到的错误消息: 是我一开

  • 我正在尝试用screenbuilder、JavaFX和SceneBuilder建立IntelliJ思想。但当我创建一个新的JavaFX项目,打开fxml文件,切换到scenebuilder选项卡时,我会得到一条很长的错误消息,而不是scenebuilder UI:

  • 我有两个环境来设置我的API,所以我有生产和开发。我首先需要的是找到一种方法来自动完成这一任务,例如,在运行时,不发送任何参数(-d)应用程序找到了一种方法来识别环境,但我没有找到任何方法来完成这一任务。 所以我看了一个教程,在同样有一个方法放了一个环境变量,并定义了我的application.properties。所以在下面的步骤中: > 我在我的应用程序中定义了3个文件,application

  • 这段配置通过上下文进行扫描--我用调试器检查了它。问题可能出在哪里?