1

有时,tomcat 重启会导致我的应用程序立即停止,以便我在 oracle db 中的消费数据保持一个错误状态。所以我想知道一旦tomcat停止,是否有任何方法可以帮助处理状态。由于未知,实际事件发生在tomcat的停止过程中。当tomcat停止时,我不知道如何确保发生某些事情。

4

2 回答 2

2

如果您正在进行正常重启,您应该能够注册一个shutdownhook并在服务器终止应用程序之前运行它。

查看 javadocs 了解更多详细信息:http ://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html#addShutdownHook(java.lang.Thread )。

您可以像这样添加关闭挂钩:

Runtime.getRuntime().addShutdownHook(new Thread(new Runnable(){
    public void run() {
         // clean-up logic
    }
}));
于 2012-06-12T01:45:06.580 回答
2

也许您可以LifecycleListener为您的 tomcat 应用程序注册一个(链接)。一个生命周期监听器将在你的上下文被加载时和它被关闭之后被调用。

这是一个更复杂的解释链接。您可能想查看接口的contextInitializedcontextDestroyed方法ServletContextListener

于 2012-06-12T01:54:33.960 回答