无法查找JNDI名称[javax.transaction.TransactionManager]

时间:2016-03-26 00:14:59

标签: java jboss vaadin wildfly

在我的JavaEE应用程序中,我有两个JAR(实体,接口),一个EJB(服务)和一个WAR(Vaadin)项目。应用程序服务器是WildFly(JBoss)。部署项目后出现以下错误。在GlassFish中,一切都很好。

  

javax.servlet.ServletException:com.vaadin.server.ServiceException:javax.ejb.EJBException:org.hibernate.engine.jndi.JndiException:无法查找JNDI名称[javax.transaction.TransactionManager]

     

null:javax.naming.NameNotFoundException:project1-ear-1.0.0.0 / project1-Services-ejb1.0.0.0 / PersonServiceImpl!com.domain.project1.interfaces.PersonService - service jboss.naming.context.java “PROJECT1耳-1.0.0.0”。 “PROJECT1 - 服务 - ejb1.0.0.0”。“PersonServiceImpl!com.domain.project1.interfaces.PersonService

我的查询:

  

Java的:全球/ PROJECT1耳-1.0.0.0 / PROJECT1-服务的EJB-1.0.0.0 / PersonServiceImpl com.domain.project1.interfaces.PersonService

怎么了?谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

由于您要在wildfly上部署它,因此您需要更改>中的属性。 persistence.xml

提供者FROM

<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

<provider>org.hibernate.ejb.HibernatePersistence</provider>

删除hibernate.transaction.jta.platform属性

<name="hibernate.transaction.jta.platform" >

<property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.SunOneJtaPlatform" />
<property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.WeblogicJtaPlatform" />

并添加以下内容

<property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform"/> 

应解决事务管理器问题。