Weblogic 클러스터에 두 개의 서버가 있으며 해당 클러스터에 JSF 기반 응용 프로그램이 배포되었습니다. Server01 및 Server02 서버가있는 Cluster01이라는 클러스터를 만들었습니다. 응용 프로그램에 액세스하는 동안 내 요청은 Server01로 이동합니다. 따라서 Server01에 내 기본 세션이 있고 Server02에 세션 복제본이 있습니다. 기본 세션 서버 (예 : Server01)를 중지하여 복제/장애 조치를 테스트하려고합니다. JSF 애플리케이션의 기능 중 하나를 클릭하면 멈춘 후에 View Expired Exception이 발생합니다. 나는 다음과 같은 오류를주는 서버 로그를 보았다.JSF 응용 프로그램의 Weblogic 복제 문제
<Jul 13, 2016 9:04:08 AM EDT> <Error> <HTTP Session> <BEA-100028> <The session data could not be deserialized.java.lang.ClassCastException: [B cannot be cast to weblogic.servlet.internal.AttributeWrapper
at weblogic.servlet.internal.session.SessionData.getAttributeInternal(SessionData.java:449)
at weblogic.servlet.internal.session.ReplicatedSessionData.getAttribute(ReplicatedSessionData.java:713)
at org.jboss.weld.context.beanstore.http.AbstractSessionBeanStore.getAttribute(AbstractSessionBeanStore.java:95)
at org.jboss.weld.context.beanstore.AttributeBeanStore.attach(AttributeBeanStore.java:110)
at org.jboss.weld.context.AbstractBoundContext.activate(AbstractBoundContext.java:66)
Truncated. see log file for complete stacktrace
세션 스킨이있는 백킹 빈. 모든 Domain 객체는 이미 직렬화되어 있습니다.
환경 : 웹 로직 서버 12C JSF2
시도해주세요. http://stackoverflow.com/questions/12094077/jsf-session-fail-over-and-partial-state-saving – abdelhady