Hibernate 带有tomcat抛出jndi异常的Bitronix配置

Hibernate 带有tomcat抛出jndi异常的Bitronix配置,hibernate,tomcat,spring-boot,bitronix,Hibernate,Tomcat,Spring Boot,Bitronix,我是bitronix新手,我的应用程序中需要xa事务 我正在尝试用spring配置bitronix,但启动tomcat时出现异常。 感谢您的帮助 原因:org.hibernate.engine.jndi.JndiException:无法查找jndi名称[javax.transaction.TransactionManager] 位于org.hibernate.engine.jndi.internal.JndiServiceImpl.locate(JndiServiceImpl.java:117)

我是bitronix新手,我的应用程序中需要xa事务

我正在尝试用spring配置bitronix,但启动tomcat时出现异常。

感谢您的帮助

原因:org.hibernate.engine.jndi.JndiException:无法查找jndi名称[javax.transaction.TransactionManager] 位于org.hibernate.engine.jndi.internal.JndiServiceImpl.locate(JndiServiceImpl.java:117) 位于org.hibernate.engine.transaction.jta.platform.internal.WeblogicJtaPlatform.locateTransactionManager(WeblogicJtaPlatform.java:41) org.hibernate.engine.transaction.jta.platform.internal.AbstractJtaPlatform.canRegisterSynchronization(AbstractJtaPlatform.java:148) 位于org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl.attemptToRegisterJtaSync(TransactionCoordinatorImpl.java:252) 位于org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl.pulse(TransactionCoordinatorImpl.java:289) 位于org.hibernate.jpa.spi.AbstractEntityManagerImpl.Jointransation(AbstractEntityManagerImpl.java:1584) 位于org.hibernate.jpa.spi.AbstractEntityManagerImpl.postInit(AbstractEntityManagerImpl.java:210) 位于org.hibernate.jpa.internal.EntityManagerImpl.(EntityManagerImpl.java:91) 位于org.hibernate.jpa.internal.EntityManagerFactoryImpl.internalCreateEntityManager(EntityManagerFactoryImpl.java:345) 位于org.hibernate.jpa.internal.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:313) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:606) 位于org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.InvokeProxy方法(AbstractEntityManagerFactoryBean.java:407) 位于org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$ManagedEntityManagerFactoryInvocationHandler.invoke(AbstractEntityManagerFactoryBean.java:560) 位于com.sun.proxy.$Proxy78.createEntityManager(未知源) 位于org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:288) 位于com.sun.proxy.$Proxy83.getDelegate(未知源) 位于org.springframework.data.jpa.provider.PersistenceProvider.fromentmanager(PersistenceProvider.java:295) 原因:javax.naming.NameNotFoundException:Name[javax.transaction.TransactionManager]未在此上下文中绑定。找不到[javax.transaction.TransactionManager]。 位于org.apache.naming.NamingContext.lookup(NamingContext.java:818) 位于org.apache.naming.NamingContext.lookup(NamingContext.java:152) 位于org.apache.naming.SelectorContext.lookup(SelectorContext.java:134) 在javax.naming.InitialContext.lookup(InitialContext.java:415) 位于org.hibernate.engine.jndi.internal.JndiServiceImpl.locate
(JndiServiceImpl.java:114)

从堆栈跟踪来看,您正在tomcat中运行应用程序,因此请确保以下几点:

1) 在pom.xml或特定于项目的lib文件夹中不应该有任何jta、bitronix相关的jar,因为这些jar应该在tomcat lib文件夹中

2) 另外,根据tomcat的conf文件夹中存在的文档更改server.xml和context.xml这两个文件

我不确定您的jndi查找配置是什么。您可以通过下面的链接为tomcat设置bitronix


@Boot。谢谢,它解决了我的问题。我的应用程序中META-INF文件夹下没有context.xml。