Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка неперхваченных исключений под Tomcat, Редирект на страницу с извинениями... 
V
    Опции темы
Maksym
Дата 7.1.2006, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 24
Всего: 62



В системе возможны необработанные исключения, которые вываливаются на уровень Tomcat и видны пользователю в окне браузера.
Хочется, чтобы любая непредвиденная ситуация заставляла Tomcat показать специальную страницу проекта с извинениями, предложением связаться с администрацией и т.п.
Как это сделать? smile
В web.xml проекта есть Pages > Error Pages , но добавление туда страниц ничего не дало
Код

<error-page>
<exception-type>
Exception
</exception-type>
<location>
/error.jsp
</location>
</error-page>

все равно исключение видно, на страницу error.jsp система не посылает... smile
Есть еще праметр код ошибки.. может в нем дело..?

Большое спасибо.
PM MAIL   Вверх
batigoal
Дата 7.1.2006, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



По-моему, у самой страницы еще есть директивы, связанные с обработкой ошибок на ней. В частности, если не ошибаюсь, у error.jsp должен быть прописан атрибут error-page=true или что-то подобное. Во-вторых, возможно, страницу ошибок надо указать непосредственно на каждой странице, но это навряд ли.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Stampede
Дата 7.1.2006, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(Maksym @ 7.1.2006, 19:57 Найти цитируемый пост)

все равно исключение видно, на страницу error.jsp система не посылает...


В принципе должно все работать, поэтому:

- попробуй указать полное имя класса: java.lang.Exception;

- убедись, что файл error.jsp лежит в корне (на одном уровне с WEB-INF);

- проверь, нет ли в ней ошибок времени выполнения, то есть вызывается ли страница при обращении напрямую по yourdomain.com/error.jsp;

- если с предыдущими тестами все в порядке, убедись, что элемент <error-page> расположен в нужном месте файла web.xml. Порядок элементов задается DTD файлом и выглядит вот так:

Цитата
<!ELEMENT web-app (icon?, display-name?, description?, distributable?,
context-param*, filter*, filter-mapping*, listener*, servlet*,
servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?,
error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*,
login-config?, security-role*, env-entry*, ejb-ref*,  ejb-local-ref*)>


- если совсем ничего не выходит, попробуй смапить по коду ошибки (HTTP status code), для начала создай записи для кодов 404 и 500.

Надеюсь, что-нибудь из перечисленного должно сработать smile

PM WWW   Вверх
batigoal
Дата 7.1.2006, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Цитата(Stampede @ 7.1.2006, 23:26 Найти цитируемый пост)

- если совсем ничего не выходит, попробуй смапить по коду ошибки (HTTP status code), для начала создай записи для кодов 404 и 500.


Томкат это поддерживает? Я думал, это только средствами веб-сервера можно сделать (апачевскими, например).


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
onsh76
Дата 9.1.2006, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 20.11.2005
Где: Beautiful BC

Репутация: 4
Всего: 5



Цитата(Lamer George @ 7.1.2006, 22:58)
Цитата(Stampede @  7.1.2006,  23:26 Найти цитируемый пост)

- если совсем ничего не выходит, попробуй смапить по коду ошибки (HTTP status code), для начала создай записи для кодов 404 и 500.


Томкат это поддерживает? Я думал, это только средствами веб-сервера можно сделать (апачевскими, например).

Поддерживает, вот фрагмент из web.xml file:
Код

<error-page>
    <error-code>404</error-code>
    <location>/jsp/error/errorMessage404.jsp</location>
  </error-page>
  <error-page>
    <error-code>500</error-code>
    <location>/jsp/error/errorMessage500.jsp</location>
  </error-page>


У меня вопрос к коллегам. А секьюрно ли показывать содержимое errorStack в errorJsp, как предлагается вот здесь?
Может лучше логировать ошибку и показывать юзеру содержимое generic error page?
Кто как делает?


PM MAIL   Вверх
batigoal
Дата 9.1.2006, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



У нас обычно выдается короткое сообщение, если ошибку можно идентифицировать (например, ошибка подключения к БД). Если нет - то generic error. Но стек мы не показываем никогда. Зачем его видеть юзеру, который не понимает ничего в программировании? Только пугать зазря.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Stampede
Дата 9.1.2006, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(onsh76 @ 9.1.2006, 08:54 Найти цитируемый пост)
А секьюрно ли показывать содержимое errorStack в errorJsp, как предлагается вот здесь?


Кончно, несекьюрно. Но чувак ведь и не говорит, что ошибку нужно показывать всем подряд:

Цитата
Beautify our error page's design a bit, add some logic to show the stack trace to QA users but hide it from customers, and we're ready to go to production!


Так что все нормально. Единственное замечание по этому поводу: я предпочитаю в случае ошибки делать редирект на статическую страницу, и вот из каких соображений. Если при обработке error.jsp в свою очередь возникнет ошибка, то юзер увидит дефолтную страницу ошибки - со всеми адресами и явками, а это уж совсем ни к чему. Так что я все-таки за статику.

PM WWW   Вверх
Maksym
Дата 10.1.2006, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 24
Всего: 62



Stampede
Спасибо за подробный ответ. smile
Задание полного имени исключения с пакетами ничего не дала.
Указание кода ошибки 500 - отлично работает, причем независимо от того где лежит файл обработки в корне или в любом другом месте проекта, все корректно находится и запускается.
В текущей ситуации этого вполне достатчно smile
С обработкой конкретных исключений буду разбираться пока не получается, но это не критично...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0535 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.