ServletContextListener是否会调用每次机器重新启动时调用的方法

时间:2013-11-15 10:24:30

标签: java apache tomcat servlets servletcontextlistener

实际上我需要执行一个方法,每次重启机器都需要几个小时才能完成。我已经在apache tomcat上部署了我的web应用程序,并且我已经启用了Apache tomcat的自动启动。为此我在ServletContextListener中调用了一个方法contextInitialized在一个简单的java类中。现在我怀疑是每次机器重新启动时都会执行contextInitialized中调用的方法。

这是我的ServletContextListener实现的类..

public class Startup implements ServletContextListener {

@Override
public void contextDestroyed(ServletContextEvent sce) {
}

public void contextInitialized(ServletContextEvent sce) {
    // Do your startup work here
    System.out.println("Started....");
    //captureCDRProcess();
    new Thread(new Runnable() {

        @Override
        public void run() {

            captureCDRProcess();
        }
    }).start();

}

这是我的web.xml ..

 <listener>
    <listener-class>org.myapp.Startup</listener-class>
</listener>

请大家帮帮我.. 提前谢谢......

2 个答案:

答案 0 :(得分:2)

  

已经在apache tomcat上部署了我的web应用程序,并且我启用了Apache tomcat的自动启动。

是的,对于Tomcat的每次启动,ServletContextListener的{​​{1}}方法都会调用。

答案 1 :(得分:1)

每次tomcat启动时都会执行该方法。

如果您不想这样做,可以使用方法main创建一个.jar库,您可以从要在其中执行时编程的cron调用它。