2013-04-13 6 views
10

Ребята Я борюсь с проблемой открытия моей пользовательской страницы ошибок в Tomcat в среде Windows. Некоторое решение я получил, но не повезло. Я пробовал почти все ссылки, но не работал для меня. Некоторые из них работают для других решений, развернутых в Tomcat, но не для моего веб-службыПользовательская страница ошибки в Tomcat 7 для кода ошибки 500

Мой 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> 


Я посылаю ошибка с моей Servlet 3.0 Применение response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

Я положил свой error.html в корневую директорию моего WebService.

Некоторые ссылки, которые я получил на JSP-страницы, а не HTML, который я также попытался

В случае JSP я использовал:

<%@ 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 он работает нормально для других Tomcat встроенное решение работает отлично. Но в моем Webservice Я получаю ответ 500, но страница открывается пустым. И еще одна вещь, с которой я отключил свой Internet Explorer 9.0, показывает, что сообщение об ошибке приветствуется на 500, начиная с сервлета. Но страница с ошибкой становится пустой.

Если у вас есть какие-либо идеи или сомнения по поводу моего запроса, просто дайте мне знать. Мне это нужно как можно скорее.

+0

Почему веб-служба пытается служить HTML-страницы, когда происходит ошибка? –

+0

... что ваш сервлет и JSPs связаны с веб-сервисами? вы уверены, что знаете, что такое веб-сервис? – eis

+0

, потому что мы используем нашу страницу ошибок в нашем проекте. –

ответ

18

Попробуйте положить следующий фрагмент в 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> 

В этом случае Error.jsp находится на том же уровне, что и WEB-INF директории (не внутри).

+0

Harshal Спасибо большое за ваш ответ, но я попробовал и Unfortunetly No Luck .. –

+1

это, кажется, было полезно для меня! обратите внимание, что упорядочение важно, вы хотите, чтобы сопоставление 500 перед отображением Исключения (как показано) –

3

То же самое может быть реализовано программным способом, если вы используете встроенный Tomcat, например, как это:

 Context appContext = ...    
     ErrorPage errorPage = new ErrorPage(); 
     errorPage.setErrorCode(HttpServletResponse.SC_NOT_FOUND); 
     errorPage.setLocation("/my_custom_error_page.html"); 
     appContext.addErrorPage(er); 
Смежные вопросы