重新部署 Tomcat 应用程序会导致活动会话被丢弃



我有一个tomcat应用程序,我通过将新的my-project.war文件放入服务器上的/var/lib/tomcat8/webapps/目录中(通过scp(来部署该应用程序。

每次我这样做时,新副本都会在几秒钟后生效。唯一的问题是它会丢弃所有会话。

我能找到的所有文档都告诉我,默认情况下Tomcat应该恢复会话。当我重新启动 Tomcat 服务时,情况似乎确实如此,但当我重新部署时并非如此......

谁能告诉我这里发生了什么?我不完全明白为什么首先以这种方式部署是有效的。

默认会话管理器 - StandardManager 将会话保存在 <tomcat-home>/work/<app-name>/SESSIONS.ser 中。停止 tomcat 时,会话将序列化到该文件中。当您启动它时 - 它们从中加载。

但是,当您重新部署应用程序时,会发生两件事:

  1. Tomcat un-deploys旧应用程序并删除<tomcat-home>/work/<app-name>/文件夹,从而删除保存的会话

  2. Tomcat 部署新应用并创建新文件夹

或者用两个词 - tomcat 在取消部署时删除保存的会话。我想这是因为:

  • 重新部署实现为取消部署 -> 部署。 即"取消部署"步骤不知道是否会部署新版本的应用程序,因此它确保在自身之后正确清理。

  • 从安全角度来看更好

最新更新