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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибки во время деплоймента 
:(
    Опции темы
Nobody
  Дата 14.11.2004, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 25.8.2003
Где: Россия, Москва

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



Итак, допустим, у нас есть веб-аппликейшн. Допустим, он довольно сложный, работает с базой данных, с EJB и хрен знает с чем ещё. Итак, начинаем мы его деплоить. Разворачивается war-файл, в ServletContextListener'е вызывается метод contextInitialized... И тут во время его выполнения - опа! - из-за какой-то ошибки (например, отсутствует нужный ей конфиг-файл) оно не может задеплоиться. Внимание, вопрос =) Может ли каким-либо образом веб-аппликейшн сообщить контейнеру о том, что оно не смогло задеплоиться и его нужно убрать из памяти?


--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
Domestic Cat
Дата 15.11.2004, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



По-моему, контейнер сам его из памяти уберет.


--------------------

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 25.8.2003
Где: Россия, Москва

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



А как контейнер узнает о том, что это надо сделать? Метод contextInitialized НЕ бросает эксепшены. И, похоже, зря.


--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
Domestic Cat
Дата 15.11.2004, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



Nо если отсутствует конфиг файл, то контейнер об этом узнает, так ведь?


--------------------

PM   Вверх
Nobody
Дата 16.11.2004, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 25.8.2003
Где: Россия, Москва

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



Domestic Cat
Nак, проблемы взаимопонимания =) Я не про деплоймент дескриптор. Просто, приложения чего-то для счастья не хватает, чтобы запуститься, и оно хочет закрыться. Как оно может сказать контейнеру, что его не надо деплоить дальше, т.к. работать оно всё-равно не сможет, только юзверям маловразумительные ошибки показывать будет?


--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
Domestic Cat
Дата 16.11.2004, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



Бросить иксепшн, и не ловить его smile


--------------------

PM   Вверх
Nobody
Дата 16.11.2004, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 25.8.2003
Где: Россия, Москва

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



Domestic Cat
Какой и где? И в какой документации написано, как на это отреагирует контейнер?
Добавлено @ 01:55
Из спецификации сервлетов:
Цитата
SRV.10.2.2 An Example of Listener Use
To illustrate a use of the event scheme, consider a simple web application containing
a number of servlets that make use of a database. The developer has provided a
servlet context listener class for management of the database connection.
1. When the application starts up, the listener class is notified. The application
logs on to the database, and stores the connection in the servlet context.
2. Servlets in the application access the connection as needed during activity in
the web application.
3. When the web server is shut down, or the application is removed from the web
server, the listener class is notified and the database connection is closed.


Да, ура, но что если у приложения НЕ получилось подконнектиться к БД? Понятное дело, работать оно не может. Но сообщить об этом контейнеру похоже тоже не может. В итоге контейнер будет думать, что всё прекрасно работает, а юзерам будут валить ошибки одна за одной.


--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
Domestic Cat
Дата 16.11.2004, 03:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



Цитата(Nobody @ 15.11.2004, 16:48)
Какой и где? И в какой документации написано, как на это отреагирует контейнер?


Параграф SRV.2.3.2.1 спецификации (2.4)


Цитата(Nobody @ 15.11.2004, 16:48)
В итоге контейнер будет думать, что всё прекрасно работает, а юзерам будут валить ошибки одна за одной.


Зачем ошибки? Сделай хендлер для этого случая и показывай юзерам "База данных временно недоступна". это лучше, чем 404.


--------------------

PM   Вверх
Nobody
Дата 16.11.2004, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 25.8.2003
Где: Россия, Москва

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



Domestic Cat
SRV.2.3.2.1 про конкретный сервлет. А хотелось бы про приложение в целом.


--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
Domestic Cat
Дата 16.11.2004, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



Вообще-то весьма странная ситуация. Если деплоишь аппликейшн, то для усеров, так ведь?
Тогда лучше все-таки показывать им че-то, хотя бы тo, что бд нe работаеt. А контейнер все равно над приложениeм напрягаться нe будет, может и выгрузит' из памяти, если надo, саm.


--------------------

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

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

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


 




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


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

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