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

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

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

tomcatconfweb.XML-код:

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

apacheconfextrahttpd-ssl.conf:

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

когда я открываю https://...../404.jsp мой заказ отобразится страница ошибки. Но когда я открываю https://...../фу/несуществующий.HTML-код отображается пустая страница.

Если я удалить <error-page>...</error-page> код из интернета.xml и открыть https://...../фу/несуществующий.HTML-код затем отображается tomcats own 404.

какие-то намеки?

7 ответов


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

JkMount /mycontext/* worker1

тогда страницы доступны таким образом:

https://mycontext/someservlet/

или

https://mycontext/foo/nonexisting.html 

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


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

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

надеюсь, что помогает :-)


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

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

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

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


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

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

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

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

    <error-page> 
    <error-code>404</error-code>
    <location>/error_404.html</location>
    </error-page>

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

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