#session #jakarta-ee #tomcat #war
#сессия #джакарта-ee #tomcat #Война
Вопрос:
В нашем приложении у нас есть 2 разных файла war, развернутых в одном и том же tomcat. В нашем случае мы сохраняем некоторые атрибуты в сеансе, которые требуются обеим войнам, для которых мы должны иметь возможность получить доступ к сеансу одного контекста (one war ) из другого контекста (other war).
Для достижения этой цели мы включили перекрестный контекст в tomcat и совместное использование сеанса, сохраняя их на карте в каждом контексте. Но этот подход стал сложным и громоздким, так что управление сеансами стало очень сложным. И, более того, если мы выберем кластеризацию Tomcat, этот подход потерпит неудачу.
Итак, может ли кто-нибудь предложить лучший способ совместного использования сеанса между несколькими приложениями, развернутыми в одном tomcat или нескольких узлах tomcat
Комментарии:
1. Не рекомендуется совместно использовать HttpSession; но вы можете совместно использовать другие объекты. Например, вы можете зарегистрировать объект через JNDI и получить доступ к одному и тому же объекту во всех своих приложениях (базы данных используют это для объединения соединений).
Ответ №1:
Вы можете создать простой веб-сервис для хранения информации, связанной с сеансом.
Например, когда при входе в APP1 создается один сеанс, эта информация будет сохранена на веб-сервисе, который будет хранить информацию до тех пор, пока APP1 не выйдет из системы.
И та же информация будет доступна для APP2 до тех пор, пока не появится сеанс APP1.
Webservice может быть простым REST API, который будет содержать информацию в формате JSON.