Посмотрите на таблицу KEY_COLUMN_USAGE в схеме information_schema.
Во-первых, вы никогда не должны вызывать System.exit ()
из контейнера сервлетов, так как другие приложения могут выполняться в том же процессе, что и ваш, и было бы невероятно неправильно принудительно убить весь процесс.
Предполагая, что ваш "сервлет инициализации" реализует ServletContextListener
, в API / интерфейсе не определен формальный способ сигнализировать контейнеру сервлета «пожалуйста, аккуратно завершите работу приложения». Однако вы можете вызвать какое-то исключение RuntimeException
из метода contextInitialized ()
, который в большинстве контейнеров (по крайней мере, Tomcat) остановит запуск вашего веб-приложения и оставит его в поле «остановлено. " государство. Однако я сомневаюсь, что Tomcat продолжит вызывать ваших слушателей завершения работы.
Возможно, вы захотите переосмыслить свой дизайн, чтобы ваши критические данные / логика завершения работы не были так тесно связаны с жизненным циклом контейнера сервлета.
Однако вы можете вызвать какое-то исключение RuntimeException
из метода contextInitialized ()
, который в большинстве контейнеров (по крайней мере, Tomcat) остановит запуск вашего веб-приложения и оставит его в поле «остановлено. " государство. Однако я сомневаюсь, что Tomcat продолжит вызывать ваших слушателей завершения работы.
Возможно, вы захотите переосмыслить свой дизайн, чтобы ваши критические данные / логика завершения работы не были так тесно связаны с жизненным циклом контейнера сервлета.
Однако вы можете вызвать какое-то исключение RuntimeException
из метода contextInitialized ()
, который в большинстве контейнеров (по крайней мере, Tomcat) остановит запуск вашего веб-приложения и оставит его в поле «остановлено. " государство. Однако я сомневаюсь, что Tomcat продолжит вызывать ваших слушателей завершения работы.
Возможно, вы захотите переосмыслить свой дизайн, чтобы ваши критические данные / логика завершения работы не были так тесно связаны с жизненным циклом контейнера сервлета.