重新部署 Tomcat 应用程序会导致活动会话被删除
Re-deploy of a Tomcat application causes the active sessions to be dropped
我有一个 tomcat 应用程序,我通过将新的 my-project.war
文件放入服务器上的 /var/lib/tomcat8/webapps/
目录(通过 scp
)来部署它。
每次我这样做,新副本都会在几秒钟后上线。唯一的问题是它会丢弃所有会话。
我能找到的所有文档都告诉我 Tomcat 应该默认恢复会话。当我重新启动 Tomcat 服务时似乎是这种情况,但当我重新部署时却不是...
谁能告诉我这是怎么回事?我不完全理解为什么它首先以这种方式部署。
默认会话管理器 - StandardManager
将会话保存在 <tomcat-home>/work/<app-name>/SESSIONS.ser
中。当您停止 tomcat 时,会话将序列化到该文件中。当您启动它时 - 它们会从中加载。
但是当您 re-deploy 您的应用程序时,会发生两件事:
Tomcat un-deploys
旧应用程序和 删除 <tomcat-home>/work/<app-name>/
文件夹,从而删除保存的会话
Tomcat 部署新应用并创建新文件夹
或者两个词 - tomcat 删除 un-deploy 上保存的会话。我想这是因为:
re-deploy 实现为取消部署 -> 部署。 IE。 'undeploy' 步骤不知道是否会部署新版本的应用程序,因此它会确保自己正确清理。
从安全角度来说更好
我有一个 tomcat 应用程序,我通过将新的 my-project.war
文件放入服务器上的 /var/lib/tomcat8/webapps/
目录(通过 scp
)来部署它。
每次我这样做,新副本都会在几秒钟后上线。唯一的问题是它会丢弃所有会话。
我能找到的所有文档都告诉我 Tomcat 应该默认恢复会话。当我重新启动 Tomcat 服务时似乎是这种情况,但当我重新部署时却不是...
谁能告诉我这是怎么回事?我不完全理解为什么它首先以这种方式部署。
默认会话管理器 - StandardManager
将会话保存在 <tomcat-home>/work/<app-name>/SESSIONS.ser
中。当您停止 tomcat 时,会话将序列化到该文件中。当您启动它时 - 它们会从中加载。
但是当您 re-deploy 您的应用程序时,会发生两件事:
Tomcat
un-deploys
旧应用程序和 删除<tomcat-home>/work/<app-name>/
文件夹,从而删除保存的会话Tomcat 部署新应用并创建新文件夹
或者两个词 - tomcat 删除 un-deploy 上保存的会话。我想这是因为:
re-deploy 实现为取消部署 -> 部署。 IE。 'undeploy' 步骤不知道是否会部署新版本的应用程序,因此它会确保自己正确清理。
从安全角度来说更好