2012-12-20 86 views
0
public class TomcatStopListener implements ServletContextListener { 


    public void contextDestroyed(ServletContextEvent arg0) { 

    // How to get reference of already running Quartz Scheduler here?? 


     } 

} 

在停止tomcat服务器,我想停止石英调度程序以避免错误,我知道scheduler.shutdown();但是我怎样才能在这里得到调度器的参考?如何在ServletContextListener中获得对Quartz Scheduler的引用? (struts 2)

+0

最简单的方法是将调度例如在servlet上下文。你是怎么开始的?什么时候? –

回答

0

如果你已经使用QuartzInitializerServlet初始化你的石英,那么你可以这样做

StdSchedulerFactory factory = (StdSchedulerFactory) ctx 
      .getAttribute(QuartzFactoryServlet.QUARTZ_FACTORY_KEY); 

contextDestroyed方法,其中ctx是你的ServletContext里。 StdSchedulerFactory实例存储在ServletContext中。

欲了解更多信息,请参阅Quartz Initializer Servlet

+0

谢谢.. 仍然我不得不在QuartzSchedulerListener类中添加QUARTZ_FACTORY_KEY的声明和setAttribute以使其工作: - public static final String QUARTZ_FACTORY_KEY =“org.quartz.impl.StdSchedulerFactory.KEY”; ServletContextEvent.getServletContext()。setAttribute(QUARTZ_FACTORY_KEY,factory); –