У меня есть веб-приложение, использующее JPA и JTA с Spring. Я хотел бы поддержать JBoss и Tomcat. Когда я работаю на JBoss, я бы хотел использовать собственный TransactionManager JBoss, и, работая на Tomcat, я хотел бы использовать JOTM.Spring JTA TransactionManager config: Поддержка как Tomcat, так и JBoss
У меня есть оба сценария работы, но теперь я обнаружил, что мне, кажется, нужны две отдельные конфигурации Spring для этих двух случаев. С JOTM, мне нужно использовать в Spring JotmFactoryBean
:
<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransaction">
<bean class="org.springframework.transaction.jta.JotmFactoryBean"/>
</property>
</bean>
В JBoss, хотя, я просто нужно получить «TransactionManager» из JNDI:
<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManager">
<bean class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="resourceRef" value="true" />
<property name="jndiName" value="TransactionManager" />
<property name="expectedType"
value="javax.transaction.TransactionManager" />
</bean>
</property>
</bean>
Есть ли способ настроить это так, чтобы соответствующий TransactionManager - JBoss или JOTM - используется без необходимости в двух разных файлах конфигурации?
Spring 3 больше не предоставляет класс `org.springframework.transaction.jta.JotmFactoryBean`, поэтому вам может потребоваться скопировать источник из 2.5.x. – Jason 2014-01-08 01:13:26