我有一个tomcat应用程序,可以通过将新my-project.war
文件放入/var/lib/tomcat8/webapps/
服务器上的目录(通过scp
)来进行部署。
每次执行此操作后,新副本都会在几秒钟后生效。唯一的问题是它将删除所有会话。
我可以找到的所有文档都告诉我Tomcat应该默认还原会话。当我重新启动Tomcat服务时似乎确实是这种情况,但是当我重新部署时却不是。
谁能告诉我这是怎么回事?我不完全理解为什么首先部署这种方式会起作用。
默认的会话管理器-StandardManager
将会话保存在中<tomcat-home>/work/<app-name>/SESSIONS.ser
。当您停止tomcat时,会话将序列化到该文件中。当您启动它时-它们是从它加载的。
但是,当您重新部署应用程序时,会发生两件事:
Tomcat的un-deploys
旧应用程序,并删除该<tomcat-home>/work/<app-name>/
文件夹,从而消除了保存会话
Tomcat部署新应用程序并创建一个新文件夹
或用两个词-tomcat在取消部署时删除已保存的会话。我猜这是因为:
重新部署的实现是取消部署->部署。即,“取消部署”步骤不知道是否将部署该应用程序的新版本,因此它确保在启动后正确进行清理。
从安全角度来看更好
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句