Как уже упоминалось в Mork0075, идентификатор сессии привязан к имени файла cookie и домену сервера. Если вы используете один и тот же домен сервера для двух приложений на разных JVM, я вижу два варианта для поддержания сеанса при переключении между приложениями:
Длинный выстрел:
1) Если вы используете базу данных для репликации сеанса, вы можете использовать одну и ту же базу данных для обоих приложений, и sessionID будет доступен для обоих приложений. Единственная проблема, которую я вижу здесь, состоит в том, что объекты в сеансе могут быть недоступны с обеих сторон, так как код будет отличаться и т. Д. Они, вероятно, будут забивать объекты сеанса другой стороны, если вы не поддержите код и тому подобное с обеих сторон, так что объекты были доступны.
Вероятная вероятность:
2) Используйте разные имена файлов cookie для сеанса в одном из двух приложений. По умолчанию сеансы используют JSESSIONID в качестве файла cookie, и когда вы переключаетесь на второе приложение, он пытается найти сеанс на основе этого имени и не может его найти. Таким образом, он создает новый sessionID и отправляет его обратно в браузер, в результате чего ваш sessionID изменяется и становится недоступным при переключении обратно на исходное приложение. Однако, если вы измените sessionID второго приложения на что-то другое (скажем, JSESSIONID2), ваш браузер получит два действительных идентификатора sessionID, каждый из которых будет действителен для их правильного приложения. Вы можете изменить имя через консоль администрирования на странице управления сеансами сервера приложений-> Включить файлы cookie.