Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Java |
![]() ![]() |
Molasar Member Откуда: Сообщений: 541 |
Всем привет! Java 8, Spring 2.1.2, Tomcat 8.5.37 На Tomcat крутится приложение-сервис, которое нужно корректно завершать перед остановкой приложения (например, через Tomcat manager) или перед остановкой Tomcat. Как можно в коде приложения определить, что дана команда на остановку приложения или Tomcat, чтобы можно было успеть вызвать метод у объекта и закрыть открытые сессии? |
31 янв 19, 13:59 [21798775] Ответить | Цитировать Сообщить модератору |
alex55555 Member Откуда: Сообщений: 1490 |
Читаем про жизненный цикл приложения в спецификации сервлетов. |
||
31 янв 19, 14:13 [21798791] Ответить | Цитировать Сообщить модератору |
Озверин Member Откуда: Ростов-на-Дону Сообщений: 4785 |
Molasar, @PreDestroy |
31 янв 19, 14:13 [21798792] Ответить | Цитировать Сообщить модератору |
Molasar Member Откуда: Сообщений: 541 |
Вот что мне нужно, но это на Java EE:import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; @WebListener public class MyAppServletContextListener implements ServletContextListener{ @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("ServletContextListener destroyed"); } @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("ServletContextListener started"); } } а есть аналог на Spring?
|
||
31 янв 19, 16:23 [21798944] Ответить | Цитировать Сообщить модератору |
Озверин Member Откуда: Ростов-на-Дону Сообщений: 4785 |
Molasar, причем полный. |
31 янв 19, 16:40 [21798968] Ответить | Цитировать Сообщить модератору |
Molasar Member Откуда: Сообщений: 541 |
При остановке приложения в Tomcat все бины, созданные этим приложением будут уничтожаться? А @PreDestroy будет вызываться перед уничтожением бина?
|
||
1 фев 19, 10:03 [21799359] Ответить | Цитировать Сообщить модератору |
Озверин Member Откуда: Ростов-на-Дону Сообщений: 4785 |
Molasar, создайте публичный метод, вставьте в него логгер события, задеплойте на томкат и остановите затем. Узнаете. |
1 фев 19, 10:23 [21799374] Ответить | Цитировать Сообщить модератору |
SQL2008 Member Откуда: Сообщений: 3693 |
У меня в проекте на Spring 4.0.1 это работает. Tomcat тоже 5.37. |
||
1 фев 19, 11:07 [21799421] Ответить | Цитировать Сообщить модератору |
SQL2008 Member Откуда: Сообщений: 3693 |
Ну конечно нужно в WEB.XML добавить<listener> <listener-class>имя.вашего.пакета.MyAppServletContextListener</listener-class> </listener> |
1 фев 19, 11:11 [21799425] Ответить | Цитировать Сообщить модератору |
вадя Member Откуда: Екатеринбург Сообщений: 15192 |
|
||
1 фев 19, 12:09 [21799509] Ответить | Цитировать Сообщить модератору |
SQL2008 Member Откуда: Сообщений: 3693 |
Хотел написать Tomcat 8.5.37 :) |
||||
1 фев 19, 12:56 [21799581] Ответить | Цитировать Сообщить модератору |
Все форумы / Java | ![]() |