JBoss EAP更新到7.2.1后如何处理WELD-001477?

How to deal with WELD-001477 after JBoss EAP update to 7.2.1?

我目前正在测试最新的 JBoss EAP 7.2.1 与之前的 7.2.0 版本的对比。虽然 7.2.0 对于我们的大型企业应用程序来说工作得很好,但后来的 7.2.1 现在在启动期间会抛出许多类似这样的异常:

WELD-001477: The bean Managed Bean [class package.SomeFacadeBean] with qualifiers [@Any @Default] declares a passivating scope but has a(n) Interceptor [class com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorMandatory intercepts @Transactional] with a non-passivation-capable dependency com.arjuna.ats.jta.cdi.JNDIBean@6f5e65a8

这些 bean 是这样声明的:

@ConversationScoped
public class SomeFacadeBean implements SomeFacade, Serializable {

    // Simplified example...
    @Transactional
    public void someMethod(Object param) {
        // ...
    }
}

我可以通过在此处删除 @ConversationScoped 来解决 EJB 模块中的初始 WELD-001477 错误 – 但是对于 WEB 模块中的所有 UI beans 都会抛出同样的错误它使用 @Transactional 方法结合 @ConversationScoped 用于他们的 类.

我真的不能在这里删除 @ConversationScoped – 这些 UI beans 需要那个范围。

@ConversationScoped
public class SomeBeanUI implements Serializable {

    // Simplified example...
    @Inject
    private SomeFacade facade;

    private Object anySerializable;

    @Transactional
    public void save() {
        // ...
    }
}

那么如何使用 JBoss EAP 7.2.1 解决这个新问题?

为了完整起见...此回归已在 EAP 7.2.3 中修复。