Jakarta ee Seam 3@Transactional注释在Java EE环境中不起作用
我有一个异步命令处理器模块,它派生出许多后台线程,这些线程读取DB记录,每个记录加载一个命令(CDIBean)并运行该命令。使用Weld SE容器进行Arquillian测试效果良好。但是,当我将其放在JavaEE环境中(作为JBoss EAP 6.1.1中的JBoss模块)时,@Transactional注释不会生效-后台方法在没有事务的情况下运行。因此,对实体的更改永远不会对数据库进行更改 依赖于此消息传递模块的客户机模块在bean.xml中包含此消息传递模块Jakarta ee Seam 3@Transactional注释在Java EE环境中不起作用,jakarta-ee,jpa,cdi,transactional,seam3,Jakarta Ee,Jpa,Cdi,Transactional,Seam3,我有一个异步命令处理器模块,它派生出许多后台线程,这些线程读取DB记录,每个记录加载一个命令(CDIBean)并运行该命令。使用Weld SE容器进行Arquillian测试效果良好。但是,当我将其放在JavaEE环境中(作为JBoss EAP 6.1.1中的JBoss模块)时,@Transactional注释不会生效-后台方法在没有事务的情况下运行。因此,对实体的更改永远不会对数据库进行更改 依赖于此消息传递模块的客户机模块在bean.xml中包含此消息传递模块 <beans xmlns
<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>
org.jboss.seam.transaction.TransactionInterceptor
我尝试了中提到的技巧,但没有成功
请问这是什么情况?
< p>我不确定你的项目结构,但是你应该考虑到BeaN.xml只在它的bean存档中工作。因此,您必须在您希望它工作的每个Bean归档中激活拦截器(CDI 1.0)。使用CDI 1.1,您可以全局启用拦截器。这实际上是EAP 6.1.1中的一个错误。请向RedHat提交一个支持问题。@JohnAment-为什么您认为这是一个EAP错误?EAP 6不支持Seam 3。这是EAP中加载拦截器的问题。@JohnAment-您指的是@JohnAment-RedHat support认为这是Seam 3/DeltaSpike问题,他们不支持。你能详细说明你遇到的问题吗;可能会导致复制机?谢谢