Когда я пишу стартап (@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, а затем вызывать синглтон для запуска работы при необходимости.

Другие вопросы по тегам