2013-03-01 3 views
0

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 그래도 문제를 일으키는 방법 :

답변

0

나는이 때문에 아래에있는 내 hibernate.cfg.xml 내에서의 무슨 일이 일어 알아 냈어.