将Hibernate 6与Wildfly一起使用
我正在尝试在 WildFly 26.0.1 上使用最新版本的 Hibernate (6)。 我在 system/layers/base/org/hibernate 下创建了以下结构;
6.0
├── hibernate-core-6.0.0.Final.jar
└── module.xml
这是 module.xml 文件:
<module name="org.hibernate:6.0" xmlns="urn:jboss:module:1.9">
<resources>
<resource-root path="hibernate-core-6.0.0.Final.jar"/>
</resources>
<dependencies>
<module name="java.desktop"/>
<module name="java.instrument"/>
<module name="java.management"/>
<module name="java.naming"/>
<module name="java.sql"/>
<module name="com.fasterxml.classmate"/>
<!--WFLY-14219 Remove deprecated <module name="javax.api"/> -->
<module name="javax.annotation.api"/>
<module name="javax.enterprise.api"/>
<module name="javax.persistence.api"/>
<module name="javax.transaction.api"/>
<module name="javax.validation.api"/>
<module name="javax.xml.bind.api"/>
<module name="com.sun.xml.bind"/>
<module name="org.antlr"/>
<module name="org.dom4j"/>
<module name="org.javassist" export="true"/>
<module name="org.jboss.as.jpa.spi"/>
<module name="org.jboss.jandex"/>
<module name="org.jboss.logging"/>
<module name="org.hibernate.commons-annotations"/>
<module name="org.hibernate.jipijapa-hibernate5-3" services="import"/>
<module name="org.infinispan.hibernate-cache" services="import" optional="true"/>
<module name="net.bytebuddy"/>
<module name="java.xml"/>
<module name="com.h2database.h2" optional="true"/>
</dependencies>
</module>
我在 persistence.xml 中引用 Hibernate 版本,如下所示:
<property name="jboss.as.jpa.providerModule" value="org.hibernate:6.0"/>
但是,当我部署应用程序时,它无法链接某些类:
Caused by: java.lang.NoClassDefFoundError: Failed to link org/hibernate/HibernateException (Module "org.hibernate:6.0" version 6.0.0.Final from local module loader @3668d4 (finder: local module finder @1c3b9394 (roots: /home/user1/jboss/wildfly-26.0.1.Final/modules,/home/user1/jboss/wildfly-26.0.1.Final/modules/system/layers/base))): jakarta/persistence/PersistenceException
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:350)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:482)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:276)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:79)
at org.jboss.modules.Module.loadModuleClass(Module.java:753)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:192)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at [email protected]//org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:131)
... 25 more
18:16:48,622 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "hibernate.war")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.persistenceunit.\"hibernate.war#primary\".__FIRST_PHASE__" => "org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl] as strategy [org.hibernate.boot.model.naming.ImplicitNamingStrategy]
Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl] as strategy [org.hibernate.boot.model.naming.ImplicitNamingStrategy]
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl]
Caused by: java.lang.NoClassDefFoundError: Failed to link org/hibernate/HibernateException (Module \"org.hibernate:6.0\" version 6.0.0.Final from local module loader @3668d4 (finder: local module finder @1c3b9394 (roots: /home/user1/jboss/wildfly-26.0.1.Final/modules,/home/user1/jboss/wildfly-26.0.1.Final/modules/system/layers/base))):
jakarta/persistence/PersistenceException"}} 知道如何修复它吗? 谢谢!
I'm trying to use the most recent version of Hibernate (6) on WildFly 26.0.1.
I have created the following structure under system/layers/base/org/hibernate;
6.0
├── hibernate-core-6.0.0.Final.jar
└── module.xml
Here is the module.xml file:
<module name="org.hibernate:6.0" xmlns="urn:jboss:module:1.9">
<resources>
<resource-root path="hibernate-core-6.0.0.Final.jar"/>
</resources>
<dependencies>
<module name="java.desktop"/>
<module name="java.instrument"/>
<module name="java.management"/>
<module name="java.naming"/>
<module name="java.sql"/>
<module name="com.fasterxml.classmate"/>
<!--WFLY-14219 Remove deprecated <module name="javax.api"/> -->
<module name="javax.annotation.api"/>
<module name="javax.enterprise.api"/>
<module name="javax.persistence.api"/>
<module name="javax.transaction.api"/>
<module name="javax.validation.api"/>
<module name="javax.xml.bind.api"/>
<module name="com.sun.xml.bind"/>
<module name="org.antlr"/>
<module name="org.dom4j"/>
<module name="org.javassist" export="true"/>
<module name="org.jboss.as.jpa.spi"/>
<module name="org.jboss.jandex"/>
<module name="org.jboss.logging"/>
<module name="org.hibernate.commons-annotations"/>
<module name="org.hibernate.jipijapa-hibernate5-3" services="import"/>
<module name="org.infinispan.hibernate-cache" services="import" optional="true"/>
<module name="net.bytebuddy"/>
<module name="java.xml"/>
<module name="com.h2database.h2" optional="true"/>
</dependencies>
</module>
I'm referencing the Hibernate version in persistence.xml as follows:
<property name="jboss.as.jpa.providerModule" value="org.hibernate:6.0"/>
However, when I deploy the application it fails to link some Classes:
Caused by: java.lang.NoClassDefFoundError: Failed to link org/hibernate/HibernateException (Module "org.hibernate:6.0" version 6.0.0.Final from local module loader @3668d4 (finder: local module finder @1c3b9394 (roots: /home/user1/jboss/wildfly-26.0.1.Final/modules,/home/user1/jboss/wildfly-26.0.1.Final/modules/system/layers/base))): jakarta/persistence/PersistenceException
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:350)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:482)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:276)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:79)
at org.jboss.modules.Module.loadModuleClass(Module.java:753)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:192)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at [email protected]//org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:131)
... 25 more
18:16:48,622 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "hibernate.war")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.persistenceunit.\"hibernate.war#primary\".__FIRST_PHASE__" => "org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl] as strategy [org.hibernate.boot.model.naming.ImplicitNamingStrategy]
Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl] as strategy [org.hibernate.boot.model.naming.ImplicitNamingStrategy]
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl]
Caused by: java.lang.NoClassDefFoundError: Failed to link org/hibernate/HibernateException (Module \"org.hibernate:6.0\" version 6.0.0.Final from local module loader @3668d4 (finder: local module finder @1c3b9394 (roots: /home/user1/jboss/wildfly-26.0.1.Final/modules,/home/user1/jboss/wildfly-26.0.1.Final/modules/system/layers/base))):
jakarta/persistence/PersistenceException"}}
Any idea how to fix it?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论