Bitronix jndi查找失败的Spring JTA事务管理器

Bitronix jndi查找失败的Spring JTA事务管理器,spring,jta,Spring,Jta,我为运行在Tomcat7上的Bitronix配置了一个spring JTA事务管理器。事务管理器正常启动,应用程序工作正常。然而,我收到了很多调试消息,说明了这一点 在回退JNDI位置[java:comp/TransactionManager]未找到JTA TransactionManager 在回退JNDI位置[java:pm/TransactionManager]未找到JTA TransactionManager 在回退JNDI位置[java:appserver/TransactionMan

我为运行在Tomcat7上的Bitronix配置了一个spring JTA事务管理器。事务管理器正常启动,应用程序工作正常。然而,我收到了很多调试消息,说明了这一点

在回退JNDI位置[java:comp/TransactionManager]未找到JTA TransactionManager 在回退JNDI位置[java:pm/TransactionManager]未找到JTA TransactionManager 在回退JNDI位置[java:appserver/TransactionManager]未找到JTA TransactionManager

等等

我知道这是JtaTransactionManager扫描已知jndi位置,这不是错误,而是调试异常。下面是我的事务管理器配置

<bean id="BitronixTransactionManager" factory-method="getTransactionManager" class="bitronix.tm.TransactionManagerServices" 
     destroy-method="shutdown" /> 
和jta事务管理器

<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="autodetectTransactionManager" value="false"/>
<property name="transactionManager" ref="BitronixTransactionManager" />    
<property name="userTransaction" ref="BitronixTransactionManager" />

我认为将autodetectTransactionManager值设置为false可以防止此扫描和由此产生的调试异常,但此设置似乎没有效果

我还尝试使用transactionManager的以下属性设置jndi位置

<property name="transactionManagerName" value="java:comp/TransactionManager"/>
<property name="userTransactionName" value="java:comp/UserTransaction"/> 
我使用的是jta 1.1,还获得了TransactionSynchronizationRegistry的相同查找消息:

DEBUG[main]JtaTransactionManager.findTransactionSynchronizationRegistry146 |在默认JNDI位置[java:comp/TransactionSynchronizationRegistry]未找到JTA TransactionSynchronizationRegistry


我真的很想理解这一点,而不仅仅是用我的Log4J过滤掉这一点。可能问题是,在Tomcat中,默认的jndi位置在java:comp/env中。所以你应该这么做

<property name="transactionManagerName" value="java:comp/env/TransactionManager"/>
<property name="transactionSynchronizationRegistryName" value="java:comp/env/TransactionSynchronizationRegistry"/>
<property name="userTransactionName" value="java:comp/env/UserTransaction"/>