2010-02-08 67 views
1

我使用Spring Quartz SchedulerFactoryBean每10秒運行一次任務(SimpleTriggerBean)。它工作的很好,除了當我取消部署應用程序,計時器繼續運行。停止它的唯一方法是重新啓動服務器!是否有一些JBoss或Spring配置會在應用程序解除部署時停止定時器?JBoss上的Spring定時器在部署時不會停止

回答

0

發現問題 - 我手動初始化Spring Context而不用servlet銷燬它。增加了一個監聽器,現在它已全部排序。

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...."); 
    } 
}