A.jar 및 B.jar와 같은 두 개의 JAR 파일이 있는데 A.jar에는 트랜잭션 관련 항목을 정의하는 Spring XML, A.xml이 들어 있습니다.가져온 XML에 정의 된 경우 스프링이 적용되지 않습니다.
<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="dataSource" ref="lookUpDataSource" />
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<!-- the transactional semantics... -->
<tx:attributes>
<tx:method name="readAll" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="FooBarOperation"
expression="execution(* com.foo.bar.service.*ServiceInterface.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="FooBarOperation" />
</aop:config>
난에 a.jar, com.foo.bar.service.AlphaServiceInterface에서 서비스를 작성하고 그것을 최대 절전 모드 SQL을 사용하여 DB 트랜잭션을 수행합니다. A.jar의 JUnit을 사용하여이 서비스를 테스트 할 때, 모든 것이 잘되고, 프록시는 Spring에 의해 만들어지며 서비스 호출을 실행할 수 있습니다. 지금, 나는이
<import resource="classpath:/META-INF/spring/A.xml"/>
내가 b.JAR가 정확히 같은 JUnit 테스트를 작성하고 테스트하려고 사용 b.JAR가에 배치 다른 봄 XML 파일, B.xml에 봄 XML 파일보다 수입하고, 트랜잭션 컨텍스트 org.hibernate.HibernateException : createSQLQuery가 활성 트랜잭션없이 유효하지 않음
참고 :이 질문은 Spring Aspect not executed when defined in other JAR과 관련됩니다.
<property name="current_session_context_class">thread</property>
라인 위의 작업 벌금을 제거한 후, 나는 아직 생각 알아 agove 그래도 문제를 일으키는 방법 :