我使用spring Quartz SchedulerFactoryBean每10秒运行一次任务(SimpleTriggerBean)。它工作得很好,除非我取消部署应用程序,计时器继续运行。阻止它的唯一方法是重启服务器!是否有一些JBoss或Spring配置会在取消部署应用程序时停止计时器?
答案 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破坏它。添加了一个监听器,现在它已全部排序。