Tengo una aplicación web que utiliza JPA y JTA con Spring. Me gustaría apoyar tanto a JBoss como a Tomcat. Cuando corro en JBoss, me gustaría utilizar el propio TransactionManager de JBoss, y cuando se ejecuta en Tomcat, me gustaría usar JOTM.Spring JTA TransactionManager config: Compatible con Tomcat y JBoss
Tengo ambos escenarios funcionando, pero ahora me parece que necesito dos configuraciones separadas de Spring para los dos casos. Con JOTM, necesito usar de JotmFactoryBean
primavera:
<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransaction">
<bean class="org.springframework.transaction.jta.JotmFactoryBean"/>
</property>
</bean>
En JBoss, sin embargo, sólo tiene que ir a buscar "TransactionManager" de 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>
¿Hay una manera de configurar esto para que el ¿se usa el TransactionManager apropiado - JBoss o JOTM -, sin la necesidad de dos archivos de configuración diferentes?
Spring 3 ya no proporciona la clase 'org.springframework.transaction.jta.JotmFactoryBean', por lo que es posible que deba copiar la fuente de 2.5.x. – Jason