Hi,
I have a JSF application integrated with Spring, with the help of ContextLoaderListener and RequestContextListener (configured inside web.xml). I have configured transactions on some backing-bean methods using Spring AOP.
My issue is that, transaction works for any action method, not for any other methods.
Here are configurations
Here, method changePassword is an action-method (set as an action of a commandButton) in the JSF page, where as, method, sendNewPassword is not an action method. If I call sendNewPassword from inside a different (non transactional) action-method, no transaction is propagated for sendNewPassword. I cannot see the log message from the HibernateTransactionManager saying - opened a new session for transaction, where I can see that in the case of changePassword, which is an action method.Code:<!-- Transaction Manager--> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="hibernateFactory"/> </bean> <!-- AOP Config --> <aop:config proxy-target-class="true"> <aop:pointcut id="pcutAuthentication" expression="execution(* com.portsdirect.sms.web.backingbeans.AuthenticationBackingBean.*(..))"/> </aop:config> <!-- Advice --> <tx:advice id="advAuthentication" transaction-manager="txManager"> <tx:attributes> <tx:method name="sendNewPassword" propagation="REQUIRED" rollback-for="com.portsdirect.sms.bi.PortsDirectBIException"/> <tx:method name="changePassword" propagation="REQUIRED" rollback-for="com.portsdirect.sms.bi.PortsDirectBIException"/> </tx:attributes> </tx:advice>
Do I have to add any extra setting to have a non-action-method be transactional ?


Reply With Quote