![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 24 Всего: 62 |
В системе возможны необработанные исключения, которые вываливаются на уровень Tomcat и видны пользователю в окне браузера.
Хочется, чтобы любая непредвиденная ситуация заставляла Tomcat показать специальную страницу проекта с извинениями, предложением связаться с администрацией и т.п. Как это сделать? В web.xml проекта есть Pages > Error Pages , но добавление туда страниц ничего не дало
все равно исключение видно, на страницу error.jsp система не посылает... Есть еще праметр код ошибки.. может в нем дело..? Большое спасибо. |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
По-моему, у самой страницы еще есть директивы, связанные с обработкой ошибок на ней. В частности, если не ошибаюсь, у error.jsp должен быть прописан атрибут error-page=true или что-то подобное. Во-вторых, возможно, страницу ошибок надо указать непосредственно на каждой странице, но это навряд ли.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Stampede |
|
||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
В принципе должно все работать, поэтому: - попробуй указать полное имя класса: java.lang.Exception; - убедись, что файл error.jsp лежит в корне (на одном уровне с WEB-INF); - проверь, нет ли в ней ошибок времени выполнения, то есть вызывается ли страница при обращении напрямую по yourdomain.com/error.jsp; - если с предыдущими тестами все в порядке, убедись, что элемент <error-page> расположен в нужном месте файла web.xml. Порядок элементов задается DTD файлом и выглядит вот так:
- если совсем ничего не выходит, попробуй смапить по коду ошибки (HTTP status code), для начала создай записи для кодов 404 и 500. Надеюсь, что-нибудь из перечисленного должно сработать |
||||
|
|||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Томкат это поддерживает? Я думал, это только средствами веб-сервера можно сделать (апачевскими, например). -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| onsh76 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 20.11.2005 Где: Beautiful BC Репутация: 4 Всего: 5 |
Поддерживает, вот фрагмент из web.xml file:
У меня вопрос к коллегам. А секьюрно ли показывать содержимое errorStack в errorJsp, как предлагается вот здесь? Может лучше логировать ошибку и показывать юзеру содержимое generic error page? Кто как делает? |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
У нас обычно выдается короткое сообщение, если ошибку можно идентифицировать (например, ошибка подключения к БД). Если нет - то generic error. Но стек мы не показываем никогда. Зачем его видеть юзеру, который не понимает ничего в программировании? Только пугать зазря.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Stampede |
|
||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Кончно, несекьюрно. Но чувак ведь и не говорит, что ошибку нужно показывать всем подряд:
Так что все нормально. Единственное замечание по этому поводу: я предпочитаю в случае ошибки делать редирект на статическую страницу, и вот из каких соображений. Если при обработке error.jsp в свою очередь возникнет ошибка, то юзер увидит дефолтную страницу ошибки - со всеми адресами и явками, а это уж совсем ни к чему. Так что я все-таки за статику. |
||||
|
|||||
| Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 24 Всего: 62 |
Stampede
Спасибо за подробный ответ. Задание полного имени исключения с пакетами ничего не дала. Указание кода ошибки 500 - отлично работает, причем независимо от того где лежит файл обработки в корне или в любом другом месте проекта, все корректно находится и запускается. В текущей ситуации этого вполне достатчно С обработкой конкретных исключений буду разбираться пока не получается, но это не критично... |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |