2011-09-05 4 views
1

iBatis 2.3.4를 Axis 2 웹 서비스에서 호출하고있다. 빌드하는 동안 AspectJ 직조를 사용하고 있습니다. iBatis, Spring에서 AspectJ를 사용할 때 트랜잭션이 적용되지 않는다.

나는 다음과 같은 Spring 애플리케이션 컨텍스트가 : 나는를 호출 할 때

@Override 
@Transactional(propagation=Propagation.REQUIRED) 
public void doStuff() { 
    System.out.println("--> isActualTransactionActive: " + TransactionSynchronizationManager.isActualTransactionActive());   
    . 
    . 
    . 

}

: 나는 따라서 @Transactional 주석을 가진 웹 서비스 작업을 가지고

<bean id="dataSource" class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy"> 
    <property name="targetDataSource"> 
     <ref bean="dataSourceImpl" /> 
    </property> 
</bean> 

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
<property name="dataSource" ref="dataSource"/> 
</bean> 

<tx:annotation-driven transaction-manager="transactionManager" mode="aspectj" proxy-target-class="true"/> 

을 보이는 웹 서비스

-> isActualTransactionActive : false

트랜잭션이 실제로 적용되지 않으므로 AspectJ와 iBatis를 함께 사용하는 사람이 있습니까?

답변

0

로딩 타임 짜기를 활성화 했습니까?

<context:load-time-weaver aspectj-weaving="on"/> 

는 편집 :

당신은 아마 또한 필요합니다 : 당신의 META-INF/context.xml에있는

<?xml version="1.0" encoding="UTF-8"?> 
<Context> 
    <Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader" /> 
</Context> 

합니다 (-javaagent 명령 줄 매개 변수를 사용하는 것을 방지하기

.
+0

문제가되었습니다. 감사합니다. Tomcat 용 -javaagent : spring-agent-2.5.5.jar 인수를 전달하는 데 문제가 있습니다. VM 인수가 아닌 계층 적 전달 방법이 있습니까? – Reimeus

관련 문제