在我的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
怎么了?谢谢你的帮助!
答案 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"/>
应解决事务管理器问题。