Ihr Fehler ist hier:
%Vor% Sie sollten nie FacesContext
als Instanzvariable einer view / session / application scoped verwalteten Bean zuweisen und sie in verschiedenen Anfragen wiederverwenden, da die aktuelle Instanz von FacesContext
an die aktuelle Anfrage, die es inhärent Anfragebereich macht (aber vorzugsweise auch nicht in Anfrage beschränkte Bohnen wegen des schlechten Stils, der zu Vorspeisen verwirrend sein kann).
Die FacesContext
-Instanz wird am Ende der Anfrage freigegeben. Bei nachfolgenden Anfragen ist die in einer früheren Anfrage erhaltene Instanz nicht mehr gültig. Wenn es funktioniert hätte, hätten alle Getter-Methoden auf ExternalContext
Ihnen die Eigenschaften (Parameter, Cookies, Header usw.) einer vorherigen HTTP-Anfrage und alle Setter-Methoden zurückgegeben, die auf eine vorhergehende HTTP-Antwort festgelegt wurden lange. Das ist alles nicht richtig.
Sie sollten es immer pro Thread lokal (d. h. gerade innerhalb des Methodenblocks) erhalten. In Ihrem speziellen Fall, erhalten Sie es gerade innerhalb der Methode login()
: