Bitronix jndi查找失败的Spring JTA事务管理器
我为运行在Tomcat7上的Bitronix配置了一个spring JTA事务管理器。事务管理器正常启动,应用程序工作正常。然而,我收到了很多调试消息,说明了这一点 在回退JNDI位置[java:comp/TransactionManager]未找到JTA TransactionManager 在回退JNDI位置[java:pm/TransactionManager]未找到JTA TransactionManager 在回退JNDI位置[java:appserver/TransactionManager]未找到JTA TransactionManager 等等 我知道这是JtaTransactionManager扫描已知jndi位置,这不是错误,而是调试异常。下面是我的事务管理器配置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
<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"/>