На самом деле вы не показываете конфигурацию вашего менеджера транзакций, поэтому я не совсем уверен, что вы используете в данный момент, но цитирую документацию:
JTA (обычно через JtaTransactionManager
) необходим для доступа к нескольким транзакционным ресурсам в рамках одной транзакции.
В Spring 2.5 рассмотрите возможность использования элемента конфигурации " new " <tx:jta-transaction-manager/>
для автоматического определения базовой платформы транзакций на основе JTA (работает с большинством серверов приложений). См. Главу 9.8. Специфичная интеграция с сервером приложений для получения более подробной информации об этом.
Если вы используете более старую версию Spring, вам нужно будет настроить JtaTransactionManager
вручную. Это потребует некоторых знаний о вашем сервере приложений, так как расположение JNDI JTA TransactionManager является специфическим для каждого сервера J2EE.
Пожалуйста, предоставьте более подробную информацию (например, версию Spring и сервер приложений, который вы используете, если вам нужны дополнительные указания).
ОБНОВЛЕНИЕ: Как я уже говорил, при использовании нескольких источников данных вам нужно использовать JtaTransactionManager
, а не HibernateTransactionManager
(см. Javadoc). Если вы используете Spring 2.5, обновите конфигурацию Spring, как показано ниже:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<tx:jta-transaction-manager />
<!--
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
//my HRappsdao using same
<ref local="sessionFactory" />
</property>
</bean>
-->
...
</beans>
Обратите внимание, что вам понадобится что-то вроде JOTM с Tomcat или Jetty. Возможно, вам следует подумать о переходе на сервер приложений J2EE, например, JBoss или Glassfish.