При написании запускаемого компонента (@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?


person Roberto Murphy    schedule 19.03.2014    source источник


Ответы (1)


Нет, это невозможно. Я рекомендую переместить логику в метод ServletContextListener contextInitialized, а затем вызвать синглтон для выполнения работы по запуску по мере необходимости.

person Brett Kail    schedule 24.03.2014