实现了ContextListener之后,我现在可以通过关闭连接池并刷新缓存等来愉快地处理contextDestroyed事件。

最近令我感到惊讶的是,在我的服务器没有关闭的时候调用了contextDestroyed -似乎是在某个任意时间,我无法跟踪。

是否存在任何触发contextDestroyed的已定义事件或情况集?

我应该确保在调用contextDestroyed时所做的一切都是可逆的吗?我需要让我所有的池都存活一个destroyed/initialized周期吗?我是否错误地假设仅在关闭Tomcat或替换我的contextDestroyed时才得到war

最佳答案

通过一系列的试验和错误测试,我发现contextDestroyed()在何时被调用;

  • 正在更新/删除服务器的.WAR
  • 由于管理员的干预,服务器已关闭。
  • 由于编码错误,服务器已关闭。那会
    终止非服务器应用程序终止。

  • 如您所建议,如果您遇到问题3,我认为最好的可能做法是安全地(确保不创建无限循环)调用contextInitialized()以确保正确地重新创建池。

    关于java - 何时调用contextDestroyed?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24628744/

    10-09 05:43