JBoss上的Spring Timers在取消部署时不会停止

时间:2010-02-08 15:07:33

标签: spring jboss quartz-scheduler

我使用spring Quartz SchedulerFactoryBean每10秒运行一次任务(SimpleTriggerBean)。它工作得很好,除非我取消部署应用程序,计时器继续运行。阻止它的唯一方法是重启服务器!是否有一些JBoss或Spring配置会在取消部署应用程序时停止计时器?

2 个答案:

答案 0 :(得分:2)

我遇到了与Spring Scheduler完全相同的问题,并且在监听器中破坏了上下文。例如:

public class InitListener implements javax.servlet.ServletContextListener {

    protected static final Logger logger = LoggerFactory.getLogger(InitListener.class);
    protected static final ClassPathXmlApplicationContext springContext = new ClassPathXmlApplicationContext(
        "applicationContext.xml");;

    public void contextInitialized(ServletContextEvent arg0) {
        logger.info("Servlet Context is initialized....");
    }

    public void contextDestroyed(ServletContextEvent arg0) {
        springContext.destroy();
        logger.info("Servlet Context is destroyed....");
    }
}

答案 1 :(得分:0)

发现问题 - 我手动初始化Spring Context而不用servlet破坏它。添加了一个监听器,现在它已全部排序。