Ich habe ein einfaches Programm in Java-Webformularen geschrieben, erhalte aber den folgenden Fehler:
WELD-000072 Verwaltete Bean, die einen passivierenden Bereich deklariert, muss passivierungsfähig sein. Bean: Managed Bean [Klasse
BeanPakage.DemoBeans
] mit Qualifikanten [@Any
@Default
@Named
]
Kann mir jemand sagen, woher dieser Fehler kommt?
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;
}
}
java
cdi
jboss-weld
christina
quelle
quelle
@Interceptors
war das Problem für mich!Es muss serialisierbar sein.
Siehe diese Antwort.
https://community.jboss.org/thread/179828
Am besten, Anders
quelle
machen Sie
DemoBeans
serialisiertquelle
Sie können das Passivierungsverhalten Ihrer Bean auch mit der Anmerkung aktivieren:
@Stateful (passivationCapable = true)
In diesem Fall müssen Sie keine serialisierbare Schnittstelle implementieren.
Grüße. Jorge
quelle
Überprüfen Sie die Importe
(Manchmal verwendeten Netbeans andere aus anderen Bibliotheken.)
Beispiel. import javax.faces.view.ViewScoped; Ändern Sie es durch Import javax.faces.bean.ViewScoped;
quelle
javax.faces.bean.ViewScoped
zugunsten von abgelehntjavax.faces.view.ViewScoped
. Bedeutet dies, dass ich alle meine Bohnen mit Sichtbereich durchgehen und sie serialisierbar machen muss? Aus demjavax.faces.bean.ViewScoped
Javadoc:@deprecated This has been replaced by {@code javax.faces.view.ViewScoped}. The functionality of this corresponding annotation is identical to this one, but it is implemented as a CDI custom scope.
Auslöser: org.jboss.weld.exceptions.DeploymentException: WELD-000072: Bean, die einen passivierenden Bereich deklariert, muss passivierungsfähig sein. Bean: Managed Bean [Klasse com.marcos.controller.PersonaBean] mit Qualifikationsmerkmalen [@Default @Named @Any]
Ich habe es gelöst, anscheinend CDI, ich habe die Bohne nicht erkannt, ich habe es nur expliziter gemacht
die lösung für mich:
quelle