У меня есть веб-приложение с зависимостью от моей другой библиотеки. Внутри этой библиотеки мне нужен доступ к объекту ServletContext
, который инициализируется после развертывания моего приложения. Я пытался получить этот объект внутри ServletContextListener.contextInitialized()
метода, но я всегда получаю ссылку null
от ServletContextEvent.getServletContext()
. Этот слушатель находится внутри библиотеки.
Вот код:
public class AppServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
/* Sets the context in a static variable */
ApplicationUtil.setServletContext(sce.getServletContext());
}
@Override
public void contextDestroyed(ServletContextEvent sce) { }
}
Но, очевидно, он не работает в этом случае. Работает ли этот слушатель, только если он является частью моего .war
с дескриптором 'web.xml', и если нет, то можно ли каким-то образом зарегистрировать его в моем приложении, не являясь частью моего проекта приложения?
Это кажется единственным способом доступа к этому экземпляру, за исключением получения его прямо из HttpServletRequest
. Есть ли другой способ получить этот экземпляр внутри зависимости JAR?