在编写一个startupbean(@Singleton @Startup @PostConstruct)时,无论如何我都可以获得ServletContext吗?

时间:2014-03-19 19:10:31

标签: startup ejb-3.1 postconstruct

所以我试图创建一个定期启动的任务,我希望它能从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 个答案:

答案 0 :(得分:2)

不,这是不可能的。我建议将逻辑移动到ServletContextListener contextInitialized方法,然后根据需要调用单例来完成启动工作。