Мне нужно освободить некоторые ресурсы в моем веб-приложении (Tomcat 7).
Я пытаюсь сделать это в destroy
моего servlet
.
Проблема в том, что когда я делаю getServletContext()
в моем destroy
ничего не происходит.
При отладке мне удалось увидеть:
java.lang.NullPointerException at javax.servlet.GenericServlet.getServletContext (GenericServlet.java:125)
Исходя из моей строки getSerlvetContext()
в методе destroy
моего servlet
.
Итак, сейчас я понятия не имею, как я должен выполнять очистку в своем веб-приложении.
Я сохранил некоторые ресурсы в ServletContext
, чтобы их можно было использовать из любой точки моегоприложение и, насколько я знаю, очистка ресурса должна быть выполнена либо
1) в destroy
из servlets
или
2) contextDestroyed
из ServletContextListener
Но ни один из них, кажется, не работает должным образом.В случае (1) я получаю NullPointerException
при попытке доступа к контексту сервлета.
В случае (2) веб-приложение уже закрыто, поэтому, если у меня есть статические методы, ответственные за перераспределение соединений с БД и т. Д. (как я понял проблему) JVM уже выгружен, так как веб-приложение уже закрыто.
Я что-то не так делаю?Что мне делать?