web.xml Fehler-Seiten funktionieren nicht, warum?
Ich bin running out of Ideen, und weiß nicht, was anderes zu versuchen. Der Punkt ist nicht einmal eine Fehler-Seite arbeitet, ich möchte nur wissen, was mache ich falsch???, hier ist der code:
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/sessionexpired.xhtml</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.xhtml</location>
</error-page>
Wenn man diesen code in meinem web.xml ich bekomme diese Meldung:
XML-lese-Fehler: kein element gefunden
Was diese Meldung bedeutet? wie kann ich dieses Problem lösen? Danke.
BTW, ich habe auch versucht, um Filter zu verwenden, Griff die ViewExpiredException, dann funktioniert es das erste mal, wenn ich den POST-Nachricht und leitet Sie an das sessionexpired.xhtml. Aber wenn ich auf zurück und dann den POST nochmal anrufen BAM! Ich bekomme mal wieder die ViewExpiredException.
UPDATE 30-NOV-2011 --[ALTERNATIVE LÖSUNG]-------------------------------------
Nach einer Weile habe ich gefunden, dass, um zu machen, arbeiten, müssen Sie angeben, den Ort zu .html-oder .jsp-Dateien, so würde es am Ende wird:
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/sessionexpired.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.jsp</location>
</error-page>
Die Glassfish-version? Wie sieht Ihr
<web-app>
root-Erklärung Aussehen? Wer vermittelt, dass die Fehlermeldung? Ihr editor oder Glassfish selbst? Ist da wirklich nichts mehr in der Fehler? Ich würde erwarten, um zu sehen, Zeile und Spalte die Zahl als gut.Ich bin mit Glassfish 3.1; die Fehlermeldung wird angezeigt, indem Sie die browser-Software verhindern; ja, es ist eine Zeile Nummer 1, Spalte Nummer 1. Ich landete schließlich durch die Schaffung eines ExceptionHandlerFactory, so konnte ich fangen, die ViewExpiredException. Als ich Las in einem forum, es scheint ein bug in Glassfish 3.1, Sie sagten, dass Sie es beheben werden für die nächste version.
Wo und Wann genau hast du diese Fehlermeldung bekommen? Es ist schließlich etwas Unklarheit. Sie bekommen diese beim speichern des web.xml oder wenn der IDE überprüft die web.xml oder wenn der container wollen analysieren web.xml? Oder bekommst du diese Fehlermeldung in der error-Seite selbst?
Ich schon beantwortet, die Frage, ist der Fehler im browser angezeigt. Ich das session-timeout auf 1, dann Teste ich die Anwendung und die Kraft es zu zeigen, die sessionexpired.xhtml, und ich am Ende immer Fehler "im browser [Firefox und IE]" (XML-lese-Fehler: kein element gefunden - Location " localhost:8080/XXXXXXX - Linie 1-Spalte 1) anstelle der sessionexpired.xhtml-Seite. Ich werde die Lösung veröffentlicht, um diese später mit der Verwendung von ExceptionHandlerFactory.
InformationsquelleAutor Joe Almore | 2011-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, für diejenigen, die strugling mit diesem Thema mit Glassfish 3.1, können Sie umgehen das problem, indem Sie die folgenden in diesem Artikel, um den Brief, dachte sogar, ich wechselte am Ende zu verwenden sendRedirect() statt des JSF-navigator zum Rendern der sessionexpired.xhtml - Datei, aber das ist deine Wahl, es funktioniert gut. Hier gehen Sie:
http://weblogs.java.net/blog/edburns/archive/2009/09/03/dealing-gracefully-viewexpiredexception-jsf2
ExternalContext#redirect()
Methode? Nicht mehr unnötigjavax.servlet
Importe mehr.Mein <error-Seite> - tag löst sich nur
*.jsp
Seiten, und nicht*.html
Seiten. Irgendeine Idee, warum dies passiert ist?sicher, aber) ich denke
*.html
werden nicht verarbeitet, JSF, nur*.jsp
.InformationsquelleAutor Joe Almore
Kann ein problem sein, versuchen Sie, diese möglicherweise hilft es..
<error-page>
tag kommen nach der<servlet-mapping>
element.Bestellung spielt keine Rolle mehr, da der Servlet 2.4 (mit XSD). Bevor das Servlet 2.3 mit DTD und älter, die Bestellung ankommt. Aber wer ist heutzutage über eine API, die älter als 10 Jahre?
InformationsquelleAutor Sumit Singh
Als pro die Kommentare, es stellt sich heraus, dass Sie sehen, wie dieser im browser statt der erwarteten Fehler-Seite. Ursprünglich habe ich interpretiert, dass es mentiond, indem Sie Ihre IDE/editor aufgrund eines syntax-Fehlers in
web.xml
. Ihre Frage war nicht ganz klar.Gut, die Lösung ist einfach: stellen Sie sicher, dass die
<location>
des<error-page>
entspricht dem URL-Muster derFacesServlet
. Am einfachsten wäre, nur die KarteFacesServlet
auf ein URL-Muster der*.xhtml
.Dies ist nur verursacht durch die Seite angefordert wird, von der browser-cache, anstatt direkt aus dem server. Siehe auch diese Antwort für eine konkrete Lösung: browser "zurück" + viewscope Bohnen.
Dieser Fehler ist browser-spezifisch. Sie scheinen mit FF, die in der Tat stellt eine XML-Fehler, wie, dass. Naja, Rechtsklick-Seite und "Quelltext anzeigen". Was sehen Sie? Ist es leer? Oder ist es nicht geparsten? Verwenden Sie Firebug und check request/response-Header. Was sagen Sie? Vor allem die Antwort content-Typ.
Es wird immer HTTP/1.1 500 Internal Server Error als Ergebnis,und der source-code der Ergebnis startet mit <parsererror>. Ich habe auch versucht zu fangen, der Fehlercode 500 aus der web.xml, aber es ist einfach nutzlos, keine Fehler Seite arbeitet von dort aus. Vielleicht sollte ich versuchen Sie mit einer anderen Maschine, oder etwas falsch sein könnte mit der installation des Glassfish ich benutze, ich weiß es wirklich nicht. Es versucht zu fangen Fehler mit der web.xml aber auf seine Art und Weise ein weiterer Fehler entsteht beim Parsen einer XML-Datei, das ist alles was ich weiß.
Ah stimmt, die error-Seite Vorlage selbst enthält wahrscheinlich eine XHTML-syntax-Fehler und Facelets fühlte sich über Sie, während analysiert wird. Gilt das auch passieren, wenn Sie öffnen Sie die Fehler-Seite direkt durch Eingabe der URL in der browser-Adressleiste? Können Sie versuchen, Bearbeiten Sie Ihre Frage an das kleinste möglich aber komplett snippet von der Fehlerseite, die immer noch das problem reproduziert?
Np, wenn ich den Zugriff direkt aus der URL der Seite (sessionexpire.xhtml) rendert in Ordnung. Wie ich Ihnen sagte, dieses Problem ist mit ExceptionHandlerFactory von jetzt, bis die Menschen von Glassfish entscheiden zu release ein Update auf diese version 3.1; ich poste die Lösung später. Vielen Dank für Ihre Mühe.
InformationsquelleAutor BalusC
Nach der änderung der web.xml haben Sie das Ohr oder Krieg Umschichtung?
Einige der application-server-cache die alte Version web.xml wenn Sie direkt gehen, um server, die Datei zu ändern.
Hoffentlich wird es auch funktionieren kann. 🙂
InformationsquelleAutor hejiaming007