我们正在将应用程序部署到WildFly 8.0.0.Final。该应用程序曾经使用Seam3管理JTA事务在Jboss EAP 6.0 / AS7.1上运行。
但是,由于Seam3不能与WildFly一起使用,我们将使用DeltaSpike替换它。 我们部署了核心和jpa模块。但是,它似乎不适用于mysql XA数据源,即使我们努力遵循其网站上的说明并添加了apache-deltaspike.properties文件以启用JTA支持。当涉及多个数据源时,我们会看到事务错误。通过打开org.jboss.jca的跟踪级别日志记录,我们会看到警告,例如无法列出当前的另一个数据源,并且jdbc驱动程序失败。
我们看到的另一个问题是@Transactional需要存在EntityManager。但有时,我们必须在运行时查找实体管理器而不是注入实体管理器。在这种情况下,我们会得到NullPointerException。我们必须注入一个实体管理员,即使我们不需要它只是为了让@Transactional不要抛弃NPE。