2013-04-13 6 views
10

Jungs Ich habe Probleme mit dem Öffnen meiner benutzerdefinierten Fehlerseite in Tomcat in Windows-Umgebung. Etwas von der Lösung habe ich aber kein Glück. Ich habe fast alle Links ausprobiert, aber es funktioniert nicht für mich. Einige von ihnen für andere Lösung arbeiten in Tomcat bereitgestellt, jedoch nicht für meine Web-ServiceBenutzerdefinierte Fehlerseite in Tomcat 7 für Fehlercode 500

Mein web.xml

<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

<error-page> 
    <location>/error.html</location> 
</error-page> 


Ich sende Fehler von meinem Servlet 3.0-Anwendungs ​​ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

Ich habe meine error.html in das Stammverzeichnis meines WebService gesetzt.

Einige der Links, die ich für JSP-Seite bekam anstelle von HTML, die auch ich

Bei JSP versucht habe ich verwendet:

<%@ page isErrorPage="true" %> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 
    <h1>Error</h1> 
</body> 
</html> 


FYI es auch für andere Tomcat funktioniert prima eingebaute Lösung es funktioniert perfekt. Aber in meinem Webservice bekomme ich Antwort 500, aber Seite öffnet leer. Und eine andere Sache, die ich meine Internet Explorer 9.0 deaktiviert habe, zeigt eine fehlerfreundliche Seite, die immer noch 500 von Servlet kommt. Aber die Fehlerseite wird leer.

Wenn Sie irgendeine Idee oder Zweifel über meine Frage haben, lass es mich wissen. Ich brauche es so schnell wie möglich.

+0

Warum ein Web-Service versucht, HTML-Seiten zu dienen, wenn ein Fehler auftritt? –

+0

... Was haben Ihre Servlets und JSPs mit Web Services zu tun? Sind Sie sicher, dass Sie wissen, was ein Webservice ist? – eis

+0

weil wir unsere benutzerdefinierte Fehlerseite in unserem Projekt verwenden –

Antwort

18

Versuchen Sie das folgende Snippet in Ihrem WEB-INF/web.xml

<error-page> 
    <error-code>500</error-code> 
    <location>/Error.jsp</location> 
</error-page> 

<error-page> 
    <exception-type>java.lang.Exception</exception-type> 
    <location>/Error.jsp</location> 
</error-page> 

In diesem Fall setzen Error.jsp ist auf dem gleichen Niveau wie WEB-INF Verzeichnis (nicht im Inneren).

+0

Harshal Vielen Dank für Ihre Antwort Aber ich habe es auch versucht Leider kein Glück .. –

+1

dies scheint für mich hilfreich gewesen zu sein! Beachten Sie, dass die Reihenfolge wichtig ist. Sie möchten das 500-Mapping vor der Exception-Mapping (wie gezeigt) –

3

Das gleiche kann programmatisch umgesetzt werden, wenn Sie Tomcat wie dies zum Beispiel eingebettet verwenden:

 Context appContext = ...    
     ErrorPage errorPage = new ErrorPage(); 
     errorPage.setErrorCode(HttpServletResponse.SC_NOT_FOUND); 
     errorPage.setLocation("/my_custom_error_page.html"); 
     appContext.addErrorPage(er); 
Verwandte Themen