страница ошибки в web.xml выдачи 404 - PullRequest
4 голосов
/ 26 марта 2011

В одном из моих проектов мне нужно обработать 404 (ресурс не найден) и 403 (доступ запрещен). Я даю конфигурацию в web.xml как

<error-page>
        <error-code>404</error-code>
        <location>/WEB_INF/jsp/web/exception/weberror.jsp</location>
    </error-page>

    <error-page>
        <error-code>403</error-code>
        <location>/WEB_INF/jsp/web/exception/accessDenied.jsp</location>
    </error-page>
</error-page>

Теперь, когда генерируется отказ в доступе, браузер показывает мне собственный 404. Я также удаляю настройку страницы дружественной ошибки в браузере, но удаляя ее, я получаю пустую страницу.

Мои jsps находятся в папке WEB-INF. Путь, где все jsps являются местами

/WEB_INF/jsp/

Пожалуйста, помогите мне. Если я что-то упустил?

Ответы [ 4 ]

9 голосов
/ 26 марта 2011

Файлы в /WEB-INF/ защищены от прямого доступа клиентом, это , определенное в спецификации Java EE . Таким образом, ваши страницы ошибок должны находиться за пределами этого каталога. Попробуйте переместить их в выделенное место, e. г. /errors/404.jsp.

4 голосов
/ 27 марта 2011

Как насчет использования WEB-INF вместо WEB_INF в вашем web.xml?

3 голосов
/ 17 июня 2012

Проблема в том, что вы используете WEB_INF вместо WEB-INF.все ресурсы, упомянутые в WEB-INF, защищены от клиента и не могут быть доступны напрямую, поэтому всегда полезно вывести их из WEB-INF.

Спасибо

0 голосов
/ 16 апреля 2013

Указанная выше ошибка выглядит в файле web.xml как cvc-complex-type.2.4.a: обнаружен недопустимый контент, начиная с элемента 'location'.

<error-page><location>/error</location></error-page>

Ошибка, которую он генерирует, является

{ "java.sun.com/xml/ns/javaee":error-code, "java.sun.com/xml/ns/javaee":exception-type} ожидается.

Правильно, что избежание сопоставления определенного кода ошибки со страницей ошибок началось со спецификации сервлета 3.0, поэтому я получил ее со следующим изменением: http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd версия = 3.0

Посмотрите на изменение версии с чего-либо на 3.0

...