2011-03-16 65 views
0

我試圖用這樣的彈簧配置bitronix作爲我的JTA管理器:java:comp/UserTransaction不使用btm和spring綁定在上下文中

<!-- 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"); 

我得到了它的命名異常。

這是什麼?還需要配置什麼?

編輯

我在tomcat documentation中看到<Transaction>可以綁定事務管理器來處理它。

這不是我在tomcat和spring中定義它的衝突嗎?

回答

0

嘗試在你的web應用程序的META-INF/context.xml中添加此:

<Context> 
    <Transaction factory="bitronix.tm.BitronixUserTransactionObjectFactory" /> 
</Context> 

這應該事務管理器結合了Java下:COMP/UserTransaction的名稱僅用於這個特定的web應用程序。

相關問題