Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jakarta ee Seam 3@Transactional注释在Java EE环境中不起作用_Jakarta Ee_Jpa_Cdi_Transactional_Seam3 - Fatal编程技术网

Jakarta ee Seam 3@Transactional注释在Java EE环境中不起作用

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

我有一个异步命令处理器模块,它派生出许多后台线程,这些线程读取DB记录,每个记录加载一个命令(CDIBean)并运行该命令。使用Weld SE容器进行Arquillian测试效果良好。但是,当我将其放在JavaEE环境中(作为JBoss EAP 6.1.1中的JBoss模块)时,@Transactional注释不会生效-后台方法在没有事务的情况下运行。因此,对实体的更改永远不会对数据库进行更改

依赖于此消息传递模块的客户机模块在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>

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问题,他们不支持。你能详细说明你遇到的问题吗;可能会导致复制机?谢谢