Когда я пишу стартап (@Singleton @Startup @PostConstruct), могу ли я получить ServletContext?
Поэтому я пытаюсь создать задачу, которая запускается через регулярные промежутки времени, и я хочу, чтобы она получила некоторые вещи из ServletContext:
...
@Singleton
@Startup
public class InitTimers {
@Resource
private TimerService timerService;
@PostConstruct
public void initTimer() {
...
// I want ServletContext here, how do I?
ServletContext context = getServletContext();
...
}
@Timeout
public void timeout(Timer timer) {
...
}
}
Может ли EJB 3.1 @Startup @Singleton получить доступ к ServletContext?
1 ответ
Решение
Нет, это невозможно. Я рекомендую переместить логику в метод ServletContextListener contextInitialized, а затем вызывать синглтон для запуска работы при необходимости.