我正在尝试从Jboss 4.2.3升级到WildFly 10 剩下的主要问题是Hibernate 我此时不想升级到Hibernate 5(Wildfly 10的默认设置) 所以我试图使用现有的使用Hibernate 3.5的代码,但是我遇到了一些问题。
我有一个包含几场战争和一些ejb-jar的耳朵。
我现在在我的ejb-jar和耳中都有jboss-deployment-structure.xml, 所有指定:
<exclusions>
<module name="org.hibernate" />
</exclusions>
我在我的耳朵的lib中包含了以下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
我看到其他人遇到这种错误,但他们得到的建议是从他们的耳朵/战争中移除他们的冬眠罐子。在我的情况下,Hibernate jar必须在那里,因为我已经排除了“内置”Hibernate。 问题可能是因为Hibernate类(Ejb3Configuration)正在调用JBoss实用程序类(ArchiveBrowser)。但是ArchiveBrowser在jbossall-client-4.2.3.GA.jar中(在我的ear / lib中)。
我也尝试将以下内容放在我的ejb-jars的persistence.xml中:
<property name="jboss.as.jpa.providerModule" value="hibernate3-bundled" />
正如在网站上向具有相同问题但导致消息的人提出的建议:
org.jboss.modules.ModuleNotFoundException: hibernate3-bundled:main
我应该设置这样的模块吗?
所以有人知道问题是什么,有解决方案吗?
另外,我的耳朵部署在wildfly-10.1.0.Final \ standalone \ deployments文件夹中
但信息是:
尝试扫描时出错:
VFS:/ C:/TFSROOT/Purchasing_Trunk/InsyncRuntime/target/InTync/wildfly-10.1.0.Final/bin/的含量 /InTyncEar-11.0.0-SNAPSHOT.ear/SchedulerCore。罐/
如果我查看文件系统,现有的“bin”文件夹下没有“content”文件夹 那是问题吗?那是在看错了地方?
最后,它是否可能,并且有没有人能够让Wildfly 10成功使用Hibernate 3? (我看到有关此问题的问题和答案,但没有“工作”解决方案)
非常感谢任何帮助。
答案 0 :(得分:1)
似乎答案是否定的。因为Hibernate和Wildfly是交织在一起的。我已经放弃了这种方法并努力将代码迁移到hibernate 5,因此它可以与wildfly 10一起使用