gpt4 book ai didi

java - 从 Servlet 关闭/取消部署 tomcat

转载 作者:搜寻专家 更新时间:2023-11-01 01:58:48 26 4
gpt4 key购买 nike

我在 Tomcat 中有一个用于加载关键数据的初始化 servlet。有时有必要在出现某些错误时中止启动。

如何在不调用 System.exit(1) 的情况下优雅地关闭已部署的应用程序/整个应用程序服务器

我想避免通过端口调用关闭 servlet,因为这在我的安装中没有配置。

可能有一些任务需要在 web.xml 中定义的关闭时从监听器运行

最佳答案

首先,你永远不应该从 servlet 容器中调用 System.exit(),因为可能有其他应用程序在与你的相同的进程中运行,它会是强行杀死整个进程是非常不正确的。

假设您的“init servlet”实现了 ServletContextListener,API/接口(interface)中没有定义正式的方式来向 servlet 容器发出信号“请彻底关闭应用程序”。但是,您可以从 contextInitialized() 方法中抛出某种类型的 RuntimeException,这在大多数容器(至少是 Tomcat)中将停止您的 webapp 的启动并将其留在“停止”状态。但是我怀疑 Tomcat 会继续调用您的关闭监听器。

您可能需要重新考虑您的设计,以便您的关键数据/关闭逻辑不会与 servlet 容器的生命周期紧密相关。

关于java - 从 Servlet 关闭/取消部署 tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1537557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com