96 votes

Erreur Java: le bean géré WELD-000072 déclarant une étendue passivante doit être capable de la passivation

J'ai écrit un programme simple dans des formulaires Web Java, mais je reçois l'erreur suivante:

WELD-000072 Le bean géré déclarant une étendue passivante doit être capable de passivation. Bean: Bean géré [classe BeanPakage.DemoBeans] avec qualificatifs [@Any @Default @Named]

Quelqu'un peut-il me dire d'où vient cette erreur?

mon code est:

 package BeanPakage;

import javax.enterprise.context.SessionScoped;
import javax.inject.Named;


@Named("DemoBeans")
@SessionScoped
public class DemoBeans 
{

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }




}
 

188voto

Matt Handy Points 19128

Vous pouvez rendre votre passivation de bean capable en implémentant l'interface Serializable:

 public class DemoBean implements Serializable { ... }
 

Notez qu'il existe davantage d'exigences pour être capable de passivation. Reportez-vous à la documentation Weld pour plus d'informations.

22voto

Tim Points 118

L'erreur peut subsister même si le bean CDI est sérialisable:

 WELD-000072 Managed bean declaring a passivating scope must be passivation capable
 

Exemple de classe:

 @Named
@ConversationScoped
public class TransactionMatchController implements Serializable {
    ...
}
 

Assurez-vous que tous les @Interceptors sont également séparables:

 @Interceptor
@Transactional
public class TransactionInterceptor implements Serializable {
    ...
}
 

6voto

Mohd Kose Avase Points 21

Faire en sorte que DemoBeans sérialisé

 @Named("DemoBeans")
@SessionScoped
public class DemoBeans  implements Serializable
{

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}
 

6voto

anders.norgaard Points 658

Il doit être sérialisable.

Voir cette réponse.

https://community.jboss.org/thread/179828

Mieux, Anders

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X