Совместное использование сеансов в войнах

#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.