Search code examples
javaserializationdependency-injectionjboss-eap-7

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


I'm currently testing the latest JBoss EAP 7.2.1 compared to the previous 7.2.0 release. While 7.2.0 worked just fine for our large enterprise application the later 7.2.1 now throws many exceptions like this one during startup:

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

These beans are declared like this:

@ConversationScoped
public class SomeFacadeBean implements SomeFacade, Serializable {

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

I could solve this initial WELD-001477 error in the EJB module by removing @ConversationScoped here – but than this very same error is thrown for all my UI beans in the WEB module which use @Transactional methods combined with @ConversationScoped for their classes.

And I can't really remove @ConversationScoped here – these are UI beans which need that scope.

@ConversationScoped
public class SomeBeanUI implements Serializable {

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

    private Object anySerializable;

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

So how do I solve this new problem with JBoss EAP 7.2.1?


Solution

  • Just for the completeness... this regression has been fixed with EAP 7.2.3.