所以我试图创建一个任务,定期发射,我希望它得到一些东西从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吗?
不,这不可能。我建议将逻辑移到ServletContextListener contextInitialized方法中,然后根据需要调用单例来执行启动工作。