java: comp / UserTransaction не связан в контексте, используя btm и spring - PullRequest
0 голосов
/ 16 марта 2011

Я пытаюсь настроить bitronix в качестве моего JTA-менеджера с помощью 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");

Я получаю исключение для именования.

Почему это?что еще мне нужно настроить?

EDITED

Я видел в документации tomcat , что <Transaction> может привязать менеджер транзакций к принятиюзаботиться об этом.

не будет ли это конфликтом, который я определю как в tomcat, так и весной?

1 Ответ

0 голосов
/ 22 марта 2011

Попробуйте добавить это в META-INF / context.xml вашего веб-приложения:

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

Это должно связать менеджер транзакций под именем java: comp / UserTransaction только для этого конкретного веб-приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...