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