gpt4 book ai didi

java - Wildfly 10 可以与旧版 Hibernate 3.5 一起使用吗?

转载 作者:行者123 更新时间:2023-12-01 09:17:50 25 4
gpt4 key购买 nike

我正在尝试从 Jboss 4.2.3 升级到 WildFly 10。
剩下的主要未决问题是 Hibernate。
我目前不想升级到 Hibernate 5(Wildfly 10 的默认版本)因此,我尝试使用使用 Hibernate 3.5 的现有代码,但遇到了一些问题。

我有一个包含一些 war 和一些 ejb-jar 的 Ear。

现在我的 ejb-jar 和耳朵里都有 jboss-deployment-struct.xml,所有指定:

<exclusions>
<module name="org.hibernate" />
</exclusions>

我已将以下 jar 包含在我的耳朵库中(JBoss 4.2.3 部署中也有):

hibernate-annotations-jboss.4.2.3.jar
hibernate-commons-annotations-3.0.0.ga.jar
hibernate-jboss.4.2.3.jar
hibernate-validator-4.0.2.GA.jar
jbossall-client-4.2.3.GA.jar

我还将以下 jar 添加到耳朵的库中:

hibernate-entitymanager-jboss.4.2.3.jar  

我在部署耳朵期间收到以下错误消息:

    INFO  [org.hibernate.ejb.Ejb3Configuration] (ServerService Thread Pool -- 83) Processing PersistenceUnitInfo [
name: AuditTrailPU
...]
2016-11-03 15:45:01,521 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 86) MSC000001: Failed to start service jboss.persistenceunit."InSyncEar-11.0.0-SNAPSHOT.ear/SchedulerCore.jar#SchedulerPU": org.jboss.msc.service.StartException in service jboss.persistenceunit."InSyncEar-11.0.0-SNAPSHOT.ear/SchedulerCore.jar#SchedulerPU": java.lang.RuntimeException: error trying to scan <jar-file>: vfs:/C:/TFSROOT/Purchasing_Trunk/InsyncRuntime/target/InTync/wildfly-10.1.0.Final/bin/content/InTyncEar-11.0.0-SNAPSHOT.ear/SchedulerCore.jar/
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:179)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:121)
at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:667)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:193)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jboss.threads.JBossThread.run(JBossThread.java:320)
Caused by: java.lang.RuntimeException: error trying to scan <jar-file>: vfs:/C:/TFSR/Purch/IntyncRuntime/target/InTync/wildfly-10.1.0.Final/bin/content/InTyncEar-11.0.0-SNAPSHOT.ear/SchedCore.jar/
at org.hibernate.ejb.Ejb3Configuration.scanForClasses(Ejb3Configuration.java:619)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:341)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:126)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:341)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.access$1200(PersistenceUnitServiceImpl.java:69)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:174)
... 7 more
Caused by: java.lang.RuntimeException: Archive browser cannot handle protocol: vfs:/C:/TFSR/Purch/IntyncRuntime/target/InTync/wildfly-10.1.0.Final/bin/content/InTyncEar-11.0.0-SNAPSHOT.ear/SchedCore.jar/
at org.jboss.util.file.ArchiveBrowser.getBrowser(ArchiveBrowser.java:56)
at org.hibernate.ejb.Ejb3Configuration.scanForClasses(Ejb3Configuration.java:610)
... 12 more

我看到其他人遇到这种错误,但他们得到的建议是从耳朵/ war 中移除 hibernate jar 。就我而言,Hibernate jar 必须在那里,因为我已经排除了“内置”Hibernate。该问题可能是因为 Hibernate 类 (Ejb3Configuration) 正在调用 JBoss 实用程序类 (ArchiveBrowser)。但 ArchiveBrowser 位于 jbossall-client-4.2.3.GA.jar 中(在我的耳朵/lib 中)。

我还尝试将以下内容放入我的 ejb-jar 的 persistence.xml 中:

 <property name="jboss.as.jpa.providerModule" value="hibernate3-bundled" />

正如网站上向有相同问题的人建议的那样,但结果是这样的消息:

org.jboss.modules.ModuleNotFoundException:hibernate3-bundled:main

我应该设置这样的模块吗?

那么有人知道问题是什么,有解决方案吗?

另外,我的ear部署在wildfly-10.1.0.Final\standalone\deployments文件夹中

但消息是:

尝试扫描时出错:

vfs:/C:/TFSROOT/Purchasing_Trunk/InsyncRuntime/target/InTync/wildfly-10.1.0.Final/bin/content/InTyncEar-11.0.0-SNAPSHOT.ear/SchedulerCore.jar/

如果我查看文件系统,现有的“bin”文件夹下没有“content”文件夹。
这是问题所在吗?它看错了地方?

最后,这是否可能?有人能够让 Wildfly 10 成功地与 Hibernate 3 配合使用吗? (我看到了有关此问题的问题和答案,但没有“有效”的解决方案)

任何帮助将不胜感激。

最佳答案

看来答案是否定的。因为 Hibernate 和 Wildfly 是交织在一起的。我已经放弃了这种方法,并努力将代码迁移到 hibernate 5,以便它可以与 wildfly 10 一起使用

关于java - Wildfly 10 可以与旧版 Hibernate 3.5 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40404925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com