Я знаю, что это почти выходные, но все еще стоит попробовать :) 1001 *
Мне нужно использовать несколько менеджеров транзакций, поэтому для меня имеет смысл использовать декларативное управление транзакциями вместо использования tx: annotation-based. Однако у меня есть классы обслуживания в различных пакетах, и следующий конфиг не работает:
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="dataSource" ref="ds" />
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="svcPointcut1" expression="execution(* com.app.services.*.*(..))"/>
<aop:pointcut id="svcPointcut2" expression="execution(* com.app.campaigns.services..*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="svcPointcut1" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="svcPointcut2" />
</aop:config>
Может кто-нибудь сказать мне, почему работает только первый pointcut, а второй - нет? Методы службы в пакете com.app.services выполняются в контексте транзакции, но методы службы в com.app.campaigns.services (и подпакете под ним) выбрасывают исключение UnsupportedException.
Пожалуйста, избавь меня от этого страдания! Спасибо за тонну!
PS: приложение использует Spring 2.5.6