我有一个标准的GWT应用程序,它当然在后端使用Java servlet.此servlet部署在Tomcat和Windows Server上.
我知道它违反了规则/建议,但我在这个servlet中有一个线程,它在servlet初始化时启动(servlet的"init"方法).该线程是各种调度程序,其目的是在某些时间执行不同的数据库任务,完全独立于GWT应用程序/接口本身.
我需要的是在部署战争后立即调用servlet的"init"方法.现在我一直在做的是,每当升级到应用程序时,我就把战争放到正确的目录中,然后我必须"登录"到应用程序GWT应用程序,以便调用它的"init"方法.我希望在战争更新后立即调用servlet的init方法,这样我就不必登录GWT应用程序来执行此操作.
有任何想法吗?
dfa*_*dfa 17
您可以使用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
}
}
Run Code Online (Sandbox Code Playgroud)
然后加:
<listener>
<description>ServletContextListener</description>
<listener-class>MyListener</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)
在你的web.xml中
| 归档时间: |
|
| 查看次数: |
9934 次 |
| 最近记录: |