Как я могу заставить ServletContextListener останавливать приложение Java EE?

У меня есть ServletContextListener, который выполняет некоторые функции управления базой данных при запуске моего приложения Java EE. Это выполняется в моем приложении до запуска / загрузки JPA и других частей приложения. Если обслуживание базы данных не удается, я регистрирую ошибки. Если обслуживание базы данных завершится неудачно, приложение не будет работать должным образом, и я хотел бы остановить его.

Как изящно и правильно остановить приложение из ServletContextListener.contextInitialized?

Решение, приведенное ниже Viven, близко, но не совсем. Когда я генерирую исключение RuntimeException, Glassfish остается в несогласованном состоянии, когда его консоль администратора недоступна, но какой-то процесс все еще работает и держит порт 3700 (IIOP?) Открытым, что предотвращает перезапуск.

10
задан BalusC 11 May 2016 в 09:24
поделиться