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

问题描述 投票:0回答:1

我目前正在测试最新的 JBoss EAP 7.2.1 与之前的7.2.0版本相比,7.2.0在我们的大型企业应用中运行得很好。虽然7.2.0在我们的大型企业应用中运行得很好,但后来的7.2.1现在在启动过程中出现了许多异常,比如这个。

WELD-001477: 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) {
        // ...
    }
}

我可以解决这个初始 WELD-001477 错误,在EJB模块中删除 @ConversationScoped 但在我的WEB模块中所有使用了 @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的这个新问题呢?

java serialization dependency-injection jboss-eap-7
1个回答
0
投票

为了完整起见......EAP 7.2.3版本已经修复了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.