从Servlet关闭/取消部署tomcat

And*_*son 5 java tomcat shutdown

我在Tomcat中有一个init servlet来加载关键数据.有时需要在某些错误上中止启动.

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

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

在web.xml中定义的关闭时,可能需要从侦听器运行任务

mat*_*t b 7

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

假设你的"init servlet"实现了ServletContextListener,在API /接口中没有定义的正式方式向servlet容器发出信号"请整齐地关闭应用程序".但是,您可以RuntimeException从该contextInitialized()方法中抛出某种东西,在大多数容器(至少是Tomcat)中,它将停止启动您的webapp并使其处于"已停止"状态.但是我怀疑Tomcat会继续调用你的关机监听器.

您可能希望重新考虑您的设计,以便您的关键数据/关闭逻辑与servlet容器的生命周期没有紧密联系.