DB 레코드를 읽고 백그라운드 당 하나의 명령 (CDI Bean)을로드하고 명령을 실행하는 백그라운드 스레드를 돌리는 비동기 명령 프로세서 모듈이 있습니다. Weld-SE 컨테이너를 이용한 Arquillian 테스트가 잘 작동합니다. 그러나 이것을 JBoss EAP 6.1.1의 JBoss Module 인 JavaEE 환경에 넣으면 @Transactional 주석이 적용되지 않습니다. 백그라운드 메소드는 트랜잭션없이 실행됩니다. 따라서 엔티티에 대한 변경은 DB에 결코 적용되지 않습니다.Seam 3 @ Java EE 환경에서 트랜잭션 주석이 작동하지 않습니다.
이 메시징 모듈에 따라 클라이언트 모듈은, 내가 Seam @Transactional annotation not working?에서 언급 한 트릭을 시도했지만 문제가 해결되지 않은 bean.xml
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:s="urn:java:ee"
xmlns:t="urn:java:org.jboss.seam.transaction"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
<interceptors>
<class>org.jboss.seam.transaction.TransactionInterceptor</class>
</interceptors>
</beans>
이있다.
왜 그런지 알고 싶습니다.
이것은 실제로 EAP 6.1.1의 버그입니다. RedHat에 지원 문제를 제기하십시오. –
@JohnAment - 왜 그것이 EAP 버그라고 생각합니까? Seam 3는 EAP 6와 함께 배송/지원되지 않습니다. – apurohit
EAP에서 인터셉터를로드하는 데 문제가 있습니다. –