我正在使用将我的java web应用程序从Jboss 7.1.1 Final迁移到Wildfly 10
- 弹簧4.2.0
- 休眠5.0.7
- jpa 2.1
-
和Mysql数据库。
我在尝试运行代码时遇到以下错误。
2016-07-20 19:30:50176错误[org.jboss.msc.service.fail](ServerService线程池--61)MSC000001:无法启动服务jboss.persistenceunit."ccp-ear-1.0-SNAPSHOT.ear/ccp-entities-1.0-SNAPSHOT.jar#ccpPU":org.jsos.msc.service.Start服务中出现异常jboss.persistenceunit."ccp-ear-1.0-SNAPSHOT.ear/ccp-entities-1.0-SNAPSHOT.jar#ccpPU":java.util.ServiceConfigurationError:org.hibernate.integrator.spi.integrator:Providerorg.hibernate.envers.boot.internal.EnversIntegrator不是子类型在org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:172)在org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:117)在org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurity manager.java:667)在org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:182)在java.util.concurrent.ThreadPoolExecutiator.runWorker(ThreadPoolExecutiator.java:1142)在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)位于java.lang.Thread.run(Thread.java:745)org.jboss.threads.JBossThread.run(JBossThread.java:320)原因:java.util.ServiceConfiguration错误:org.hibernate.integrator.spi.integrator:提供程序org.hibernate.envers.boot.internal.EnversIntegrator不是位于的java.util.ServiceLoader.fail(ServiceLoader.java:239)java.util.ServiceLoader.access$300(ServiceLoader.java:185)java.util.ServiceLoader$LazyTerator.nextService(ServiceLoader.java:376)位于java.util.ServiceLoader$LazyTerator.next(ServiceLoader.java:404)位于java.util.ServiceLoader$1.next(ServiceLoader.java:480)org.hibernate.boot.register.classloading.internal.ClassLoaderServiceImpl.loadJavaServices(ClassLoaderService Impl.java:324)在org.hibernate。integrator.internal.IntegratorServiceImpl.(IntegratorServiceImpl.java:40)在org.hibernate.boot.registry.BootstrapServiceRegistryBuilder.build(BootstrapServiceRegisterBuilder.java:213)在org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.buildBootstrapServiceRegistry(EntityManagerFactoryBBuilderImpl.java:365)在org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl。(EntityManagerFactoryBuilderImpl.java:166)在org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:34)在org.hibernate.jpa.Hhibernate PersistenceProvider.getEntityManagerFactoryBuilder(hibernate Persistence Provider.java:165)在org.hibernate.jpa.Hhibernate PersistenceProvider.getEntityManagerFactoryBuilder(hibernate Persistence Provider.java:160)在org.hibernate.jpa.Hhibernate PersistenceProvider.createContainerEntityManagerFactory(hibernate Persistence Provider.java:135)在org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:318)在org.jboss.as.jpa.service.PersistenceUnitServiceImpl.access$1100(PersistenceUnitServiceImpl.java:67)在org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:167)…还有7个
-
您需要删除
hibernate.cfg.xml
,并将配置从此文件移动到persistence.xml
。 -
然后,您还必须从
WEB-INF/lib
文件夹中删除所有休眠文件,因为WildFly有自己的文件,这种情况也可能导致冲突。有关此问题的更多详细信息,请访问此链接:JBoss社区论坛
Wildfly 10.0.0.Final也有类似的问题。在我的项目中,我们在项目的lib目录中也有所有与hibernate相关的库。但是jboss提供的库导致了冲突,所以我删除了JBOSS_HOMEmodulessystemlayersbaseorghibernatemain
目录中module.xml
文件中标记<module xmlns="urn:jboss:module:1.3" name="org.hibernate">
中的内容。此外,我还删除了jboss-deployment-struture.xml
中hibernate库的依赖项,如
<exclusions>
<module name="org.hibernate" slot="main"/>
</exclusions>
经过这些更改,我可以克服与hibernate相关的冲突问题。希望这会有所帮助。
请注意,仅jboss-deployment-struture.xml
的更改并不能解决我的问题,module.xml文件中提到的更改是强制性的。