WELD-000072 Le bean géré déclarant une étendue de passivation doit être capable de 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 un périmètre de passivation doit être compatible avec la passivation. Bean: Bean géré [classe BeanPakage.DemoBeans ] avec des qualificatifs [ @Any @Default @Named ]

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

 import javax.enterprise.context.SessionScoped; import javax.inject.Named; @Named("DemoBeans") @SessionScoped public class DemoBeans { private Ssortingng name; public Ssortingng getName() { return name; } public void setName(Ssortingng name) { this.name = name; } } 

Vous pouvez rendre votre passivation de bean compatible en implémentant l’interface Serializable:

 public class DemoBean implements Serializable { ... } 

Notez qu’il y a plus d’exigences pour être capable de passivation. Reportez-vous à la documentation relative à la soudure pour plus d’informations.

L’erreur peut restr 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 @Intercepteurs sont également sialisables:

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

Il doit être sérialisable.

Voir cette réponse.

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

Best, Anders

Faire en DemoBeans sérialisé

 @Named("DemoBeans") @SessionScoped public class DemoBeans implements Serializable { private Ssortingng name; public Ssortingng getName() { return name; } public void setName(Ssortingng name) { this.name = name; } } 

Vous pouvez également activer le comportement de passivation de votre bean avec l’annotation:

@Stateful (passivationCapable = true)

Dans ce cas, vous n’avez pas besoin d’implémenter l’interface Serializable.

Cordialement. Jorge

Vérifier les importations

(quelques fois, netbeans utilisait d’autres bibliothèques d’autres bibliothèques)

Exemple. import javax.faces.view.ViewScoped; changez-le par import javax.faces.bean.ViewScoped;

Causée par: org.jboss.weld.exceptions.DeploymentException: WELD-000072: Le bean déclarant une étendue de passivation doit être capable de passiver. Bean: Bean géré [classe com.marcos.controller.PersonaBean] avec qualificateurs [@Default @Named @Any]


Je l’ai résolu, apparemment CDI, je n’ai pas reconnu le haricot, je l’ai juste rendu plus explicite

 @Named @ViewScoped public class PersonaBean implements Serializable { @Inject private IPersonaService service; public void registrar() { try { service.registrar(null); }catch (Exception e) { e.printStackTrace(); } } } 

la solution pour moi:

 @Named ("PersonaBean") @ViewScoped public class PersonaBean implements Serializable { @Inject private IPersonaService service; public void registrar() { try { service.registrar(null); }catch (Exception e) { e.printStackTrace(); } } }