Повторное развертывание приложения Tomcat приводит к удалению активных сеансов - PullRequest
0 голосов
/ 13 июня 2019

У меня есть приложение tomcat, которое я развертываю, помещая новый файл my-project.war в каталог /var/lib/tomcat8/webapps/ на моем сервере (через scp).

Каждый раз, когда я делаю это, новая копияжив несколько секунд спустя.Единственная проблема заключается в том, что он удаляет все сеансы.

Вся документация, которую я могу найти, говорит мне, что Tomcat должен восстановить сеансы по умолчанию.Похоже, это тот случай, когда я перезапускаю службу Tomcat, но не при повторном развертывании ...

Может кто-нибудь сказать мне, что здесь происходит?Я не до конца понимаю, почему он работает таким образом.

1 Ответ

1 голос
/ 13 июня 2019

Менеджер сеансов по умолчанию - StandardManager сохраняет сеансы в <tomcat-home>/work/<app-name>/SESSIONS.ser.Когда вы останавливаете tomcat, сеансы сериализуются в этот файл.Когда вы запускаете его - они загружаются из него.

Но при повторном развертывании ваших приложений происходят две вещи:

  1. Tomcat un-deploys старое приложение и удаляет папку <tomcat-home>/work/<app-name>/, таким образом удаляет сохраненные сеансы

  2. Tomcat развертывает новое приложение и создает новую папку

Или в двух словах - Tomcat удаляет сохраненные сеансы при развертывании.Я думаю, это потому, что:

  • повторное развертывание реализовано как undeploy -> deploy.Т.е. шаг «undeploy» не знает, будет ли развернута новая версия приложения, поэтому он обеспечивает правильную очистку после себя.

  • лучше с точки зрения безопасности

...