小编典典

tomcat自动启动servlet

tomcat

我有一个标准的GWT应用程序,它当然在后端使用Java servlet。该servlet部署在Tomcat和Windows Server上。

我知道这违反规则/建议,但是该Servlet中有一个线程在Servlet初始化时启动(Servlet的“
init”方法)。线程是各种调度程序,它的目的是在特定时间执行不同的数据库任务,完全独立于GWT应用程序/接口本身。

我需要的是在战争部署后立即调用servlet的“
init”方法。现在,我一直在做的是,每次对应用程序进行升级时,我都会将战争放在正确的目录中,然后我必须“登录”到应用程序GWT应用程序,以便调用其“
init”方法。我希望在战争更新后立即调用servlet的init方法,这样我就不必登录到GWT应用程序。

有任何想法吗?


阅读 299

收藏
2020-06-16

共1个答案

小编典典

您可以使用servlet上下文侦听器。更具体地说,您可以在contextInitialized方法中启动线程:

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class MyListener implements ServletContextListener {

    public void contextInitialized(ServletContextEvent sce) {
         // start the thread
    }

    public void contextDestroyed(ServletContextEvent sce) {
         // stop the thread
    }
}

然后加:

<listener>
    <description>ServletContextListener</description>
    <listener-class>MyListener</listener-class>
</listener>

在你的web.xml中

2020-06-16