Сервлет: пользовательская страница 401 не запускается - PullRequest
1 голос
/ 19 февраля 2012

Я зарегистрировал страницу с ошибкой:

<error-page>
    <error-code>401</error-code>
    <location>/WEB-INF/exceptions/401.jsp</location>
</error-page>

Я вызываю ошибку в моем сервлете:

response.sendError(401, "message here");

401.jsp:

<%@page contentType="text/html" pageEncoding="UTF-8" isErrorPage="true"%>
<!DOCTYPE html>
<html>
    ...
    <body>
        <h1>Unauthorized (401)</h1>
        <p><%= exception.getMessage() %></p>
    </body>    
</html>

К сожалению, отображается только «общая» страница 401.

Я перезапустил приложение и Tomcat, но без изменений.

Чего мне не хватает?

** редактировать 0 **

Я включил код файла JSP.

Похоже, проблема в коде <%= exception.getMessage() %>. Если он будет удален, пользовательская страница будет отображаться как положено. Если он присутствует, отображается «общее» сообщение.

Я заменил этот JSTL ${pageContext.errorData.throwable.message}. Пользовательская страница 401 отображается, но сообщение пустое.

1 Ответ

0 голосов
/ 19 февраля 2012

AFAIK jsp должен находиться во внешней папке WEB-INF, в противном случае вам необходимо настроить jsp в web.xml с тегом <jsp-file>.Попробуйте поставить 401.jsp снаружи WEB-INF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...