我有一个使用JPA和JTA和Spring的Web应用程序。我想支持JBoss和Tomcat。在JBoss上运行时,我想使用JBoss自己的TransactionManager,并且在Tomcat上运行时,我想使用JOTM。Spring JTA TransactionManager配置:支持Tomcat和JBoss
我有两种方案的工作,但我现在发现,我似乎需要两种情况下两个单独的弹簧配置。随着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中,不过,我只需要从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