둘러보기 생략.
 

어노테이션 기반의 트랜잭션 처리 문의

Anyframe 4.1 cxf Restful 웹서비스 기반으로 프로젝트를 하고 있습니다.
현재 어노테이션 기반으로 트랜잭션을 처리에 대해 문의드립니다.
일단 context-transaction.xml 파일을 src\main\resources\spring\ 폴더에 위치시키고
해당 서비스 impl 클래스 메소드에 @Transactional 이라 명시하면 기본적으로 REQUIRED 트랜잭션으로 인식하면서 메소드 단위로 트랜잭션이 묶이는 것으로 알고 있는데 위와 같이 설정하고 테스트해보니 Exception이 발생해도 rollback이 안되고 각각의 메소드별로 commit이 되고 있습니다.
어떻게 설정을 하면 되는지 문의드립니다.
아래는 context-transaction.xml 파일의 내용입니다.
------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
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
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

다음과 같은 형태로 설정후 진행하시기 바랍니다.

<?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"
xmlns:aop="http://www.springframework.org/schema/aop"
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
http://www.springframework.org/schema/aop 
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">

<!-- foundation-tx-START -->
<bean id="queryTxManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource"/>
</bean>

<tx:advice id="queryTxAdvice" transaction-manager="queryTxManager">
<tx:attributes>
<tx:method name="*" rollback-for="Exception" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
    
<aop:config>
<aop:pointcut id="genericServiceRequiredTx" expression="execution(* *..GenericService+.*(..))"/>
<aop:pointcut id="mipServiceRequiredTx" expression="execution(* *..MiPService+.*(..))"/>
<aop:pointcut id="serviceRequiredTx" expression="execution(* *..sales..*ServiceImpl.*(..))"/>
<aop:pointcut id="jobRequiredTx" expression="execution(* *..job..*Job.execute(..))"/>
<aop:advisor advice-ref="queryTxAdvice" order="2" pointcut-ref="genericServiceRequiredTx" />
<aop:advisor advice-ref="queryTxAdvice" order="2" pointcut-ref="mipServiceRequiredTx" />
<aop:advisor advice-ref="queryTxAdvice" order="2" pointcut-ref="serviceRequiredTx" />
<aop:advisor advice-ref="queryTxAdvice" order="2" pointcut-ref="jobRequiredTx" />
</aop:config>
<!-- foundation-tx-END -->
</beans>