我理解,优雅的关闭可以完成预先存在的请求,同时拒绝新的请求。
如何正常关闭在Apache Tomcat实例上运行的Java应用程序?不确定我是否需要扩展当前的应用程序,或者它是否是一个简单的终端命令。
答案 0 :(得分:1)
我希望你的意思是在你的Tomcat上运行的WebApp。
您可以在web.xml中定义一个监听器:
<listener>
<listener-class>
your.project.ContextListener
</listener-class>
</listener>
可以处理关闭上下文(WebApp)。
import javax.servlet.ServletContextListener;
public class ContextListener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent sce) {
cleanYourResources();
}
}
当关闭Tomcat或在Tomcat管理器中停止webapp时,会发送contextDestroyed事件,并且您的监听器可以进行必要的内务处理。通常,它涉及停止后台线程(如计划任务),保存缓存内容,关闭资源池等。)