# Fehlerseiten (error-page)



## Smoothi (6. Dez 2011)

Also ich versuch nun Seitenfehler zu behandeln.

Zunächst... ich bin danach gegangen:Klick mich

Folgendes habe ich in die web.xml geschrieben

```
<error-page>
   <error-code>500</error-code>
   <location>/WEB-INF/error/500.xhtml</location>
</error-page>
```

Die File liegt direkt unter WEB-INF/error/

Wenn ich nun eine Seite aufruf, die es nicht gibt, sollte der Error 500 kommen.
Das passiert auch, wenn ich die Zeilen weglasse... jedoch wird mit den Zeilen versucht, die Seite herunterzuladen

wenn ich nun eine test.xhtml öffnen will, die es nicht gibt, öffnet sich ein Downloaddialog, der die test.xhtml herunterladen will mit der entsprechenden Fehlermeldung, dass diese nicht heruntergeladen wurde, weil sie nicht gefunden wurde.

EDIT: ok, anscheinend lassen sich keine JSF-Seiten aufrufen... mit html, anstatt xhtml funktioniert es. Weiß jemand, wie das auch mit JSF-Seiten funktionieren könnte?


----------



## Smoothi (6. Dez 2011)

Wenn ich jetzt noch rausfinden würde, wie ich CSS-Dateien IMMER zugänglich mach, würden mir die einfachen HTML-Seiten reichen.

Derzeit binde ich die Datei so ein:

```
<link rel="stylesheet" type="text/css" href="/WEB-INF/resources/css/error.css"/>
```

Wenn ich nun /faces/test.xhtml aufrufe, kommt die gewollte Fehlerseite mit der gewollten Optik...
bei /test.xhtml ebenfalls.

Liegt wahrscheinlich daran, dass /faces mein Standardordner ist... 

Wenn ich /test/test.xhtml schreibe geht es bereits nicht mehr... kurz gesagt... es sollte bei einem 404,500 etc. die entsprechende Fehlerseite immer mit der nötigen CSS-Datei aufgerufen werden.


----------



## maki (6. Dez 2011)

der sog. "Contextname" muss teil einer absoluten URL sein.
Oder du machst die URL relativ.


----------



## Smoothi (6. Dez 2011)

Ja das versuche ich ja 

Eine absolute URL geht nicht, da ich noch nicht weiß, wie wo die Applikation am Ende liegt... Ich würde es gern weiterhin mit relativen URLs versuchen. Müßte quasi immer vom Root ausgehen, egal in welchem Ordner ich bin... nur bekomm ich das einfach nicht gebacken :/


----------



## maki (6. Dez 2011)

Dir ist klar das eine URL die mit [c]/[/c] beginnt absolut ist?


----------



## Smoothi (6. Dez 2011)

Ja hab mich falsch ausgedrückt und es auch etwas falsch verstanden :bahnhof:.... ich meinte, dass ich den kompletten Pfad noch nicht weiß 

aber habs hinbekommen... mir fehlte ein Ordner. Ich nahm an, dass der Pfad in dem Projekt-Ordner (also ohne diesen selbst zu nennen) beginnt... anscheinend aber doch eine ebene darunter


----------



## Smoothi (6. Dez 2011)

Da ich noch eine kleine Sache habe, die zum Thema gehört, frag ich direkt noch:

Auf der angesprochenen Seite steht, dass Fehler, die nicht speziell abgefragt wurden, wie folgt abgefangen werden können:

```
<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    ...
</error-page>
```

Leider fängt der auch bereits abgefragte Fehler ab... Also egal ob ich 500,404 etc separat behandle. Wie sollte man das sonst machen?

Irgendwie konnte man auch einen SessionTimeout abfangen... leider find ich das nicht mehr.


----------

