Пустая страница вместо пользовательской страницы ошибок 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-файл. Надеюсь, это поможет. Удачи в кодировании...