Пустая страница вместо настраиваемой страницы ошибок tomcat

Моя настройка: Apache 2.2 + Tomcat 6.0 @ Windows 2008 R2 64bit

  • статические веб-страницы: /
  • сервлет: / foo
  • tomcat и apache связаны через mod_jk
  • 404.jsp помещается в tomcat \ webapps \ ROOT

tomcat \ conf \ web.xml:

<error-page>
 <error-code>404</error-code>
 <location>/404.jsp</location>
</error-page>

apache \ conf \ extra \ httpd-ssl.conf:

JkMount /foo/* worker1
JkMount /404.jsp worker1

Когда я открываю https://...../404.jsp, моя настраиваемая страница ошибки отображается. Но когда я открываю https://...../foo/nonexisting.html отображается пустая страница.

Если я удалю код <error-page>...</error-page> из web.xml и открою https://...../foo/nonexisting.html, то отображается 404-й собственный код котов.

Какие-нибудь намеки?


person Alexander    schedule 04.10.2010    source источник


Ответы (7)


Jkmount должен иметь контекст как параметр, например:

JkMount /mycontext/* worker1

то доступ к страницам осуществляется следующим образом:

https://mycontext/someservlet/

or

https://mycontext/foo/nonexisting.html 
person Leon    schedule 28.11.2012

Насколько я понимаю, ошибки веб-приложений не могут быть обработаны с помощью страниц ошибок, размещенных в ROOT. Теперь я помещаю 404.jsp в каждое веб-приложение (/foo/404.jsp, /bar/404.jsp, ...), и теперь он работает. Я могу безопасно удалить 404.jsp в ROOT, но если я удалю 404.jsp в / foo или / bar, будет отображаться пустая страница, если 404 произойдет в любом из веб-приложений. Либо tomcat игнорирует начальный / в элементе «location», либо содержимое этого элемента добавляется по пути «вызывающего» веб-приложения.

person Alexander    schedule 17.01.2011

Примечание. Убедитесь, что указанная вами страница не начинается с числа (например, 404.jsp). Это потому, что в соответствии с синтаксисом Java вы не можете начинать имя класса с числа.

http://www.jguru.com/faq/view.jsp?EID=492774

Надеюсь, это поможет :-)

person Christer Nordvik    schedule 07.01.2011
comment
для 404.jsp создается _404_jsp.java, который компилируется в _404_jsp.class, который вызывается без проблем, поэтому это не может быть причиной - person Alexander; 10.01.2011

Если он отлично работает при загрузке 404.jsp и показывает пустую страницу, когда tomcat фактически пытается использовать страницу для обработки ошибки 404, это может означать, что в исходном коде 404.jsp есть ошибка, которая запускается только при использовании errorData объект.

Проверить журналы. У меня была аналогичная проблема с пустой страницей, и оказалось, что у меня неверный URL-адрес библиотеки тегов.

ИЗМЕНИТЬ

Кроме того, JkMount не требуется, поскольку tomcat уже генерирует эти 404 (т.е. они не входят в компетенцию Apache).

person Zak Linder    schedule 14.01.2011

У меня тоже была эта проблема, и, как оказалось, виноват в том, что я ввел имя корневого контекста приложения в расположение страницы с ошибкой. Это,

<error-page>
 <error-code>404</error-code>
 <location>/MyApp/404.jsp</location>
</error-page>

Тогда как это, конечно, должно было быть

<error-page>
 <error-code>404</error-code>
 <location>/404.jsp</location>
</error-page>
person sigint    schedule 20.01.2011
comment
как я ответил себе несколько дней назад: местоположение добавляется к пути веб-приложений, поэтому, когда в веб-приложении возникает ошибка 404 с путем / foo, то обслуживается / foo / {местоположение}, поэтому кажется, что нельзя указать глобальную ошибку страницы - person Alexander; 21.01.2011

Я столкнулся с этой проблемой при запуске статического веб-проекта. Я выполнил следующую реализацию, и у меня она сработала.

Добавлены следующие строки в% CATALINA_HOME% / conf / web.xml

    <error-page> 
    <error-code>404</error-code>
    <location>/error_404.html</location>
    </error-page>
person Sujan    schedule 28.04.2014

Он показывает, что страница 404 не найдена, иначе? Потому что некоторые другие коды ошибок также доступны, например, 400 401 403 500. Взгляните на эту ссылку для этого http://docs.yahoo.com/docs/writeus/error.html

Если у вас есть другие, добавьте эти коды ошибок в файл web.xml. Надеюсь, это поможет. Удачного кодирования ...

person Muneeswaran Balasubramanian    schedule 02.12.2010
comment
? Вы, должно быть, неправильно поняли мою проблему - person Alexander; 03.12.2010