我安装了 Hibernate 4.1.6 附带的 JBoss AS 7.1.3(没有机会改变它)。由于此类版本中的错误(没有可用的解决方法),我必须更新我的应用程序以使用 Hibernate 5.1。
由于这发生在特定应用程序中,只有那个应用程序必须接收更新版本的 Hibernate,同一服务器中的其他应用程序必须继续使用已经存在的 Hibernate 版本。
如何:
蒂亚!
更新1
这是我目前的
module.xml
文件,位于 ...\jboss-as-7.1.3.Final\modules\org\hibernate\5.1.10.Final
:<module xmlns="urn:jboss:module:1.1" name="org.hibernate:5.1.10.Final">
<resources>
<resource-root path="hibernate-core-5.1.10.Final.jar"/>
<resource-root path="hibernate-entitymanager-5.1.10.Final.jar"/>
<resource-root path="hibernate-infinispan-5.1.10.Final.jar"/>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="asm.asm"/>
<module name="javax.api"/>
<module name="javax.persistence.api"/>
<module name="javax.transaction.api"/>
<module name="javax.validation.api"/>
<module name="org.antlr"/>
<module name="org.apache.commons.collections"/>
<module name="org.dom4j"/>
<module name="org.infinispan" optional="true"/>
<module name="org.javassist"/>
<module name="org.jboss.as.jpa.hibernate" slot="4" optional="true"/>
<module name="org.jboss.logging"/>
<module name="org.hibernate.envers" services="import" optional="true"/>
<module name="org.hibernate.commons-annotations"/>
</dependencies>
</module>
最佳答案
您可以在 jboss-deployment-structure.xml
中控制类加载.它应该看起来像这样(请阅读您的 jboss 版本的文档以了解确切的配置参数):
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<deployment>
<exclusions>
<module name="org.hibernate" slot="main" />
</exclusions>
<dependencies>
<module name="org.hibernate" slot="5.1.10.Final" />
</dependencies>
</deployment>
</jboss-deployment-structure>
您可能还需要在
persistence.xml
中添加以下属性:<property name="jboss.as.jpa.providerModule" value="org.hibernate:5.1.10.Final"/>
此外,创建一个新模块并为您要使用的 Hibernate 版本复制必要的 jar; here有关 AS7 中类加载的更多详细信息。
关于eclipse - 如何在 JBoss AS 7.1.3 中添加更新版本的 Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45885732/