我正在尝试将bitronix配置为我的JTA管理器,如下所示:
<!-- Bitronix Transaction Manager embedded configuration -->
<bean id="xaDataSource" class="bitronix.tm.resource.jdbc.PoolingDataSource"
init-method="init" destroy-method="close">
<property name="className" value="bitronix.tm.resource.jdbc.lrc.LrcXADataSource" />
<property name="uniqueName" value="java/DS1" />
<property name="maxPoolSize" value="5" />
<property name="minPoolSize" value="0" />
<property name="allowLocalTransactions" value="false" />
<property name="testQuery" value="SELECT 1 FROM DUAL" />
<property name="driverProperties">
<props>
<prop key="user">user</prop>
<prop key="password">user</prop>
<prop key="url">url</prop>
<prop key="driverClassName">oracle.jdbc.OracleDriver</prop>
</props>
</property>
</bean>
<bean id="btmConfig" factory-method="getConfiguration"
class="bitronix.tm.TransactionManagerServices">
<property name="serverId" value="spring-btm" />
</bean>
<bean id="bitronixTransactionManager" factory-method="getTransactionManager"
class="bitronix.tm.TransactionManagerServices" depends-on="btmConfig,xaDataSource"
destroy-method="shutdown" />
<bean id="jtaTransactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManager" ref="bitronixTransactionManager" />
<property name="userTransaction" ref="bitronixTransactionManager" />
</bean>
<!-- end of Bitronix Transaction Manager embedded configuration -->
我看到bitronix正在启动并运行:
399 DEBUG ( PoolingDataSource.java:84) - building XA pool for java/DS1 with 0 connection(s) etc..)
然而,当我尝试:
DataSource ds = (DataSource) ic.lookup("java:comp/UserTransaction");
我得到了它的命名异常。
为什么?我还需要配置什么?
EDITED
我在tomcat documentation中看到<Transaction>
可以绑定事务管理器来处理它。
这不是我在tomcat和spring中定义它的冲突吗?
答案 0 :(得分:0)
尝试在您的网络应用的META-INF / context.xml中添加:
<Context>
<Transaction factory="bitronix.tm.BitronixUserTransactionObjectFactory" />
</Context>
这应该仅针对此特定Web应用程序的java:comp / UserTransaction名称绑定事务管理器。