Spring JTA TransactionManager config: Supporting both Tomcat and JBoss Spring

출처 : http://stackoverflow.com/questions/117751/spring-jta-transactionmanager-config-supporting-both-tomcat-and-jboss

I have a web application using JPA and JTA with Spring. I would like to support both JBoss and Tomcat. When running on JBoss, I'd like to use JBoss' own TransactionManager, and when running on Tomcat, I'd like to use JOTM.

I have both scenarios working, but I now find that I seem to need two separate Spring configurations for the two cases. With JOTM, I need to use Spring's JotmFactoryBean:

<bean id="transactionManager" 
 
class="org.springframework.transaction.jta.JtaTransactionManager">
   
<property name="userTransaction">
       
<bean class="org.springframework.transaction.jta.JotmFactoryBean"/>
   
</property>
</bean>

In JBoss, though, I just need to fetch "TransactionManager" from 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>

Is there a way to configure this so that the appropriate TransactionManager - JBoss or JOTM - is used, without the need for two different configuration files?

TAG

Leave Comments