2013-04-13 14 views
10

Faceci borykam się z problemem otwarcia mojej niestandardowej strony błędu w Tomcat w środowisku Windows. Niektóre rozwiązania mam, ale bez powodzenia. Próbowałem prawie wszystkie linki, ale nie działa dla mnie. Część z nich pracuje dla innego rozwiązania wdrożonego w Tomcat, ale nie dla mojego Web ServiceNiestandardowa strona błędu w Tomcat 7 dla kodu błędu 500

Moja 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> 


przesyłam błąd z mojej Servlet 3.0 Zastosowanie response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

Umieściłem mój error.html w katalogu głównym mojej WebService.

Niektóre z linków dostałem dla JSP stronie zamiast HTML, który również próbowałem

W przypadku JSP użyłem:

<%@ 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 to działa dobrze dla innych Tomcat wbudowane rozwiązanie działa idealnie. Ale w mojej Webservice otrzymuję odpowiedź 500, ale strona jest pusta. I jeszcze jedna rzecz, którą wyłączyłem, mój Internet Explorer 9.0 pokazuje błąd przyjazny dla strony, a odpowiedź wciąż przychodzi 500 z serwletu. Ale strona błędów jest pusta.

Jeśli masz jakieś pomysły lub wątpliwości dotyczące mojego zapytania, daj mi znać. Potrzebuję tego JAK NAJSZYBCIEJ.

+0

Dlaczego to serwis internetowy stara się służyć stron HTML, gdy wystąpi błąd? –

+0

... co twój serwlet i JSP mają do czynienia z usługami sieciowymi? czy na pewno wiesz, czym jest serwis internetowy? – eis

+0

ponieważ używamy naszej niestandardowej strony błędu w naszym projekcie –

Odpowiedz

18

spróbuj umieścić następujący fragment w swojej 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> 

W tym przypadku Error.jsp jest na tym samym poziomie co WEB-INF katalogu (nie wewnątrz niego).

+0

Harshal Wielkie dzięki za odpowiedź Ale spróbowałem również Unfortunetly No Luck .. –

+1

to wydaje się być pomocne dla mnie! Uwaga, kolejność jest ważna, chcesz mieć 500 mapowania przed mapowaniem wyjątków (jak pokazano) –

3

To samo może być realizowane programowo jeśli wykorzystują osadzone Tomcat na przykład tak:

 Context appContext = ...    
     ErrorPage errorPage = new ErrorPage(); 
     errorPage.setErrorCode(HttpServletResponse.SC_NOT_FOUND); 
     errorPage.setLocation("/my_custom_error_page.html"); 
     appContext.addErrorPage(er); 
Powiązane problemy