1

春の Quartz SchedulerFactoryBean を使用して、10 秒ごとにタスク (SimpleTriggerBean) を実行しています。アプリをアンデプロイするときを除いて、タイマーは引き続き実行されます。停止する唯一の方法は、サーバーを再起動することです! アプリがアンデプロイされたときにタイマーを停止する JBoss または Spring 構成はありますか?

4

2 に答える 2

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....");
    }
}
于 2011-11-30T00:18:40.610 に答える
0

問題が見つかりました-サーブレットでSpringContextを破棄せずに、手動でSpringContextを初期化していました。リスナーを追加しました。すべてソートされました。

于 2010-02-08T16:42:29.977 に答える