Hallo,
ich habe mir einen eigenen ExceptionHandler zum behandeln von NullPointerExceptions geschrieben und eingebunden. Dieser soll beim Auftreten einer NullPointerException auf eine Fehlerseite weiterleiten. Hier der entsprechende Ausschnitt:
Auf einer test.xhtml Seite wird nun eine Bean angesprochen:
In dem entsprechenden getter wird eine NullPointerException erzwungen:
Der redirect für dieses kleine Beispiel funktioniert auch prima. Füge ich jedoch mehr Content auf der Seite ein (z.B. ein Menü mit vielen Einträgen und Icons) funktioniert der redirect nicht mehr und ich bekomme die Meldung: "response already committed".
Nun zu meiner Frage: Wieso ist der Response im ExceptionHandler bereits committed? Und wieso ist er das nicht wenn ich nur wenig Content auf der Seite habe? Gibt es vielleicht irgendeinen context-param oder ähnliches, der dieses verhindert? ???:L
ich habe mir einen eigenen ExceptionHandler zum behandeln von NullPointerExceptions geschrieben und eingebunden. Dieser soll beim Auftreten einer NullPointerException auf eine Fehlerseite weiterleiten. Hier der entsprechende Ausschnitt:
Java:
FacesContext fc = FacesContext.getCurrentInstance();
NavigationHandler nav = fc.getApplication().getNavigationHandler();
nav.handleNavigation(fc, null, "error" );
Auf einer test.xhtml Seite wird nun eine Bean angesprochen:
Java:
<h:outputText value="#{requestTestBean.firstname}" />
In dem entsprechenden getter wird eine NullPointerException erzwungen:
Java:
Object x = null;
x.toString()
Der redirect für dieses kleine Beispiel funktioniert auch prima. Füge ich jedoch mehr Content auf der Seite ein (z.B. ein Menü mit vielen Einträgen und Icons) funktioniert der redirect nicht mehr und ich bekomme die Meldung: "response already committed".
Nun zu meiner Frage: Wieso ist der Response im ExceptionHandler bereits committed? Und wieso ist er das nicht wenn ich nur wenig Content auf der Seite habe? Gibt es vielleicht irgendeinen context-param oder ähnliches, der dieses verhindert? ???:L