Инфраструктура
- JSF 2.1.17 (Мохарра)
- Хейзелкаст 3.3
- JBoss EAP 6.3
Контекст
Session scoped
bean-компонент с именемLogin
, который содержит одно полеemail
.- При развертывании без
Hazelcast
bean-компонент создается только один раз и сохраняет свои значения. - При добавлении Hazelcast в приложение мы заметили, что bean-компонент
Login
десериализуется на каждом этапе выполнения (адрес памяти меняется, а установленный адрес электронной почты не сохраняется).
Как мы заметили
Страница входа выдавала сообщение «поля пусты», хотя они были фактически установлены. Затем мы провели дополнительную отладку и обнаружили, что экземпляр bean-компонента повторно создается на каждой фазе (с использованием PhaseListener).
Обратите внимание, что если мы изменим область действия компонента на запрос или просмотр, поля будут распознаны, но это не вариант в реальном контексте.
Является ли Hazelcast переопределением того, как JSF обрабатывает bean-компонент сеанса? Если нет, то почему это происходит?
Изменить: компонент реализует Serializable