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

mu0hgdu0  于 5个月前  发布在  Java
关注(0)|答案(1)|浏览(81)

在我的JavaEE应用程序中,我有两个EJB(实体,接口),一个EJB(服务)和一个WAR(Vaadin)项目。应用服务器是WildFly(JBoss)。在部署项目后,出现了以下错误。在GlassFish中,一切正常。
javax.servlet.ServletException:服务器端出现异常:javax.ejb. EJB异常:org.hibernate.engine.jndi.JndiException:无法找到服务器端的数据库。
空: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-ear-1.0.0.0”.“project1-Services-ejb1.0.0.0”.“PersonServiceImpl!com.domain.project1.interfaces.PersonService
我的查询:
java:global/project1-ear-1.0.0.0/project1-Services-ejb-1.0.0.0/PersonServiceImpl!com.domain.project1.interfaces.PersonService
怎么了?多谢帮忙!

icomxhvb

icomxhvb1#

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

<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"/>


这样就解决了transaction manager的问题。

相关问题