我正在将基于hibernate
的项目从4.2.0
升级到4.3.2
。该项目作为jboss-eap-6.4
]部署在.ear
中
该项目使用jboss-as-jpa
。我在.ear
中定义了一个persistance.xml,其中包含以下属性
<property name="hibernate.transaction.jta.platform" value="org.hibernate.engine.transaction.jta.platform.internal.JBossAppServerJtaPlatform" />
((从休眠
JBossAppServerJtaPlatform
升级到org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform
时,org.hibernate.engine.transaction.jta.platform.internal.JBossAppServerJtaPlatform
的包位置已从4.2.0
更改为4.3.2
。
如果我启动jboss
,它将立即停止,并且服务器日志中将出现以下错误。
17:40:26,412 WARN [org.jboss.modules] (ServerService Thread Pool -- 27) Failed to define class org.jboss.as.jpa.hibernate4.JBossAppServerJtaPlatform in Module "org.jboss.as.jpa.hibernate:4" from local module loader @757942a1 (finder: local module finder @4a87761d (roots: C:\AlanLal\jboss-eap-6.4\modules,C:\AlanLal\jboss-eap-6.4\modules\system\layers\base)): java.lang.LinkageError: Failed to link org/jboss/as/jpa/hibernate4/JBossAppServerJtaPlatform (Module "org.jboss.as.jpa.hibernate:4" from local module loader @757942a1 (finder: local module finder @4a87761d (roots: C:\AlanLal\jboss-eap-6.4\modules,C:\AlanLal\jboss-eap-6.4\modules\system\layers\base))) at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:487) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:277) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:92) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.Module.loadModuleClass(Module.java:568) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.as.jpa.hibernate4.HibernatePersistenceProviderAdaptor.injectJtaManager(HibernatePersistenceProviderAdaptor.java:50) at org.jboss.as.jpa.processor.PersistenceProviderAdaptorLoader.loadPersistenceAdapterModule(PersistenceProviderAdaptorLoader.java:117) [jboss-as-jpa-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21] at org.jboss.as.jpa.subsystem.JPAExtension.initialize(JPAExtension.java:110) [jboss-as-jpa-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21] at org.jboss.as.controller.extension.ExtensionAddHandler.initializeExtension(ExtensionAddHandler.java:97) [jboss-as-controller-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21] at org.jboss.as.controller.extension.ParallelExtensionAddHandler$ExtensionInitializeTask.call(ParallelExtensionAddHandler.java:139) [jboss-as-controller-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21] at org.jboss.as.controller.extension.ParallelExtensionAddHandler$ExtensionInitializeTask.call(ParallelExtensionAddHandler.java:125) [jboss-as-controller-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_172] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_172] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_172] at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_172] at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.2.Final-redhat-1.jar:2.1.2.Final-redhat-1] Caused by: java.lang.NoClassDefFoundError: org/hibernate/service/jta/platform/internal/JBossAppServerJtaPlatform at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.8.0_172] at java.lang.ClassLoader.defineClass(ClassLoader.java:763) [rt.jar:1.8.0_172] at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:361) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:482) [jboss-modules.jar:1.3.6.Final-redhat-1] ... 19 more Caused by: java.lang.ClassNotFoundException: org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform from [Module "org.jboss.as.jpa.hibernate:4" from local module loader @757942a1 (finder: local module finder @4a87761d (roots: C:\AlanLal\jboss-eap-6.4\modules,C:\AlanLal\jboss-eap-6.4\modules\system\layers\base))] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.6.Final-redhat-1] ... 23 more
在进一步的原因分析中,我在jboss modules文件夹
jboss-as-jpa-hibernate4-7.5.0.Final-redhat-21.jar
中找到了一个jar。这个jar中的类仍然从org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform(hibernate 4.2。)扩展,这导致了错误的出现
我尝试过的东西
我试图在redhat maven repo中找到此jar的较新版本,但我找不到适用于Hibernate 4.3.0的兼容版本(即使最新版本仍指向org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform
)
我尝试升级到hibernate 5.
,但在他们的Maven存储库中找不到jboss-as-jpa-hibernate4-7.5.0.Final-redhat-21.jar
的兼容版本。
是否有其他地方可以找到与hibernate 4.3.0 or even 5
兼容的jar,或者上述回购中的任何其他软件包都可以达到相同的目的
我正在将基于休眠的项目从4.2.0升级到4.3.2。该项目作为.ear部署在jboss-eap-6.4中。该项目与jboss-as-jpa一起使用。我已经在.ear ...