인프라직렬화 문제는 빈 범위
- JSF 2.1.17 (인 Mojarra)
- Hazelcast 3.3
- 제이보스 EAP 6.3
상황
Session scoped
Login
빈은 하나의 필드email
을 포함합니다.Hazelcast
없이 배포하면 bean은 한 번만 인스턴스화되고 해당 값을 유지합니다.- 응용 프로그램에 Hazelcast를 추가 할 때마다
Login
빈이 각 실행 단계 (메모리 주소가 변경되고 설정된 전자 메일이 보관되지 않음)에서 deserialize된다는 것을 알게되었습니다.
우리는 로그인 페이지들이 실제로 설정 동안 메시지 "필드가 비어"던지고
을 발견하는 방법. 그런 다음 더 자세히 디버깅하여 Bean이 각 단계 (PhaseListener 사용)에서 다시 인스턴스화된다는 것을 알았습니다.
요청 또는보기하도록 bean 범위를 변경하면 필드는 인식되지만 실제 컨텍스트에서는 옵션이 아닙니다.
Hazelcast는 JSF가 세션 범위 Bean을 처리하는 방식을 재정의합니까? 그렇지 않다면, 왜 이런 일이 일어나고 있습니까?
편집 : 빈은 Serializable