2016-04-27 10 views
0

ich eine Web-Anwendung, in denen es Filter, Servlets und Fehlerbehandlung in web.xml definiertTomcat oder Apache Container ändert meine Antwort

Im Fehlerbehandlung definiere ich das Servlet die Pflege der Fehlerbehandlung zu nehmen braucht.

Die Fehlerbehandlungsroutine Servlet hat Zugriff auf Anfrage und Antwortvariablen

Es setzt HTTP-Status 404 in der Antwort.

und legt auch meine benutzerdefinierte Fehlerseite im Antwort-Ausgabestream fest.

Und das ist es.

Aber wenn der Container (ich werde meinen Container in Kürze beschreiben) die Antwort an den Browser zurückgibt, zeigt der Browser seine eigene 404-Seite anstelle meiner benutzerdefinierten Fehlerseite an.

Im Chrom browser-> Entwickler-Tools Ich sehe den 404 Status

Wenn ich die folgende Änderung vornehmen: Fehlerseite Servlet setzt HTTP-Status 200 in Reaktion

ich meine Fehlerseite zu bekommen. In der Chrom-Browser-> Entwickler-Tools sehe ich die 200-Status

Jetzt gehen wir zurück, diese Anwendung arbeitet in PRODUCTION in einem anderen Container mit geringfügiger Änderung im Code (einige weniger Protokollierung). Und dort Fehlersätze Servlet 404 als Antwort. (Benutzerdefinierte Fehlerseite wird angezeigt)

Container: Meine Anwendung (beide) hat ein Setup, in dem es von Apache UND Tomcat-Container ausgeführt wird. Apache wird verwendet, um statischen Inhalt Tomcat für den dynamischen Inhalt zu dienen.

Der Unterschied zwischen diesen beiden Containern ist nur die Version von Tomcat und Apache und der Unterschied in der Redhat-Version, die sie verwenden.

Frage: Wie debug ich dieses Problem. Wie ändert Tomcat/Apache den Ausgangsstrom, den ich einstelle. Oder hat Apache/Tomcat meine Antwort vollständig geändert.

Mein Fehler Seite Servlet hat alle Protokollierung und sieht gut aus, aber es scheint, dass die Antwort vom Container geändert wird.

Dank

Antwort

Verwandte Themen