自动线程在tomcat中启动

时间:2009-07-03 02:59:03

标签: java jsp tomcat

我希望线程在启动tmocat上的应用程序时自动启动。 我该怎么做。我必须添加一些东西到web.xml ??

2 个答案:

答案 0 :(得分:2)

您可以使用SerlvetContextListener执行此操作。

创建一个实现ServletContextListener接口的类:

import javax.servlet.*;
import javax.servlet.http.*;

public class ApplicationStartup implements ServletContextListener {

  public void contextInitialized(ServletContextEvent event) {
    // Do work here...
    // new Thread().start(); etc...
  }

  public void contextDestroyed(ServletContextEvent event)
  {
     // Stop work here if required
  }
}

将您的类添加到web.xml文件中:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2.3.dtd">

<web-app>

  <!-- Listeners -->
  <listener>
    <listener-class>ApplicationStartup</listener-class>
  </listener>

</web-app>

答案 1 :(得分:1)

在Tomcat或任何其他Java EE容器中启动自己的线程并不是一个好主意(这里的许多相关问题都在SO中)。最好使用Quartz调度程序。