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

时间:2019-06-13 06:06:57

标签: session tomcat deployment tomcat8

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

每次执行此操作时,新副本都会在几秒钟后生效。唯一的问题是它将删除所有会话。

我能找到的所有文档都告诉我Tomcat应该默认还原会话。重新启动Tomcat服务时似乎确实是这种情况,但是当我重新部署...时却不是这样。

谁能告诉我这是怎么回事?我不完全理解为什么首先部署这种方式会起作用。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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

  • 重新部署是作为取消部署->部署实现的。即“取消部署”步骤不知道是否将部署该应用程序的新版本,因此请确保在启动后正确进行清理。

  • 从安全角度来看更好