2017-08-26 54 views
1

我正在尝试使用EclipseLink学习Spring JPA。我运行的是独立的Spring webApplication,它只显示一些JSP页面。如何在Jboss v6上使用Spring + EclipseLink jpa运行Web应用程序

在另一个eclipse项目中,我有一个简单的eclipseLink JPA例子。 但是当我试图将Spring WebApp与eclipselink代码集成时,它无法启动,因为jboss试图加载hibernate而不是eclipseLink。

下面是错误 - 我想,我错过了在Jboss 6上使用Spring + EclipseLink部署简单WebApp的一些基本步骤。这纯粹是为了学习的目的。我搜索了一下,但没有足够的例子来说明这个组合。

11:17:31272 INFO [org.hibernate.ejb.Ejb3Configuration] (Server服务线程池 - 50)HHH000204:处理 PersistenceUnitInfo [名:Eclipselink_JPA ...] 11:17:31384 WARN HHH000181:假设应用程序将提供 连接11:17:31,405 ERROR [org.jboss .msc.service.fail] (ServerService线程池 - 50)MSC000001:无法启动服务 jboss.persistenceunit。“HelloWeb.war#Eclipselin k_JPA “: org.jboss.msc.service.StartException服务 jboss.persistenceunit。” HelloWeb.war#Eclipselink_JPA“: javax.persistence.PersistenceException:[PersistenceUnit: Eclipselink_JPA]无法在 org.jboss打造的EntityManagerFactory .as.jpa.service.PersistenceUnitServiceImpl $ 1.run(PersistenceUnitServiceImpl.java:103) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.8.0_102] at java.util.concurrent .ThreadPoolExecutor $ Worker.run(Unknown Source) [java.lang.Thread.run(Unknown Source) [rt.jar:1.8.0_102] at org.jboss.threads。 JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.2.Final-redhat-1.jar:2.1.2.Final-redhat-1]引起 作者:javax.persistence.PersistenceException:[PersistenceUnit: Eclipselink_JPA]无法构建EntityManagerFactory org .hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:925) 在 org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:900) 在 org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java :76) 在 org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:200) 在 org.jboss.as.jpa.service.Persist org.hibernate.HibernateException:enceUnitServiceImpl.access $ 600(PersistenceUnitServiceImpl.java:57) 在 org.jboss.as.jpa.service.PersistenceUnitServiceImpl $ 1.run(PersistenceUnitServiceImpl.java:99) ... 4个产生的原因:在 org.hibernate.service.jdbc.dialect 'hibernate.dialect' 未设置在 org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:98) 当连接 不能为空。 internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:68) 在 org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:174) 在 org.hibernate作为。service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:85) 在 org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:184) 在 org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:156) 在 org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1827) 在 org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1785) 在 org.hibernate作为.ejb.EntityManagerFactoryImpl。(EntityManagerFactoryImpl.java:96) at org.hibernate.ejb.Ejb3Configuration .buildEntityManagerFactory(Ejb3Configuration.java:915) ... 9更

11:17:31415 ERROR [org.jboss.as.controller.management运算] (Controller引导螺纹)JBAS014612:操作(“部署“)失败 - address:([(”deployment“=>”HelloWeb.war“))) - failure description: {”JBAS014671:Failed services“=> {”jboss.persistenceunit。\“HelloWeb.war# 。Eclipselink_JPA \ “”=> “org.jboss.msc.service.StartException在服务 jboss.persistenceunit \” HelloWeb.war#Eclipselink_JPA \“: javax.persistence.PersistenceException:[PersistenceUnit: Eclipselink_JPA]无法建立EntityManagerFactory 所致:javax.persistence.PersistenceException:[PersistenceUnit:Eclipselink_JPA]无法建立 的EntityManagerFactory 引起:org.hibernate.HibernateException:当 'hibernate.dialect' 未设置连接不能为空“}}

回答

0

您提到Spring + EclipseLink作为JPA供应商,但日志显示Hibernate例外。你在“混合”EclipseLinkHibernate。您还可以发布您的JPA相关属性和Spring bean配置吗?

+0

我认为Jboss + spring正试图加载Hibernate。为了强制我的webApp加载eclipseLink,我有一个java类,用“@Configuration @EnableTransactionManagement @EnableJpaRepositories”和返回“getEclipseLinkJpaVendorAdapter”的方法强制webApp使用eclipselink。但不知何故它使用休眠。 – AbhijitG

0

我得到这个加在persistence.xml中的下列财产解析 - 当我部署我在JBoss Web应用程序 org.eclipse.persistence.jpa.PersistenceProvider现在

,它使用的EclipseLink JPA加载EntityManagerFactory的,而不是的默认Hibernate。

相关问题