我希望线程在启动tmocat上的应用程序时自动启动。 我该怎么做。我必须添加一些东西到web.xml ??
答案 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调度程序。