什么时候调用了contextDestroyed?

Old*_*eon 15 java tomcat servletcontextlistener

实现了一个ContextListener我现在可以contextDestroyed通过关闭我的连接池和刷新我的缓存等来愉快地处理事件.

最近,contextDestroyed当我的服务器没有被关闭时,我很惊讶- 这似乎是在一些我无法追踪的任意时间.

是否有任何已定义的事件或一组情况触发contextDestroyed

我应该确保我所做的一切contextDestroyed都是可逆的吗?我是否需要让所有游泳池都能在一个destroyed/initialized周期内存活?假设contextDestroyedTomcat被关闭或者我的war被替换时,我只会得到一个错误吗?

gle*_*end 9

通过一系列的试验和错误测试,我发现它contextDestroyed()被称为;

  1. .WAR正在更新/删除服务器.
  2. 由于管理员干预,服务器已关闭.
  3. 由于编码错误,服务器将关闭.可以终止非服务器应用程序终止的东西.

如果您遇到问题#3,正如您所建议的那样,我认为最好的行动方案是安全地(确保不创建无限循环)调用contextInitialized()以确保正确地重新创建池.