2016-07-13 2 views
0

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

+0

시도해주세요. http://stackoverflow.com/questions/12094077/jsf-session-fail-over-and-partial-state-saving – abdelhady

답변

0

웹 로직 서버는 JSF의 관리 빈의 복제를 처리하지 않습니다. 이는 JSF의 책임입니다. 클러스터링 복제를 처리하기 위해이 JSF 매개 변수를 살펴보십시오. com.sun.faces.enableAgressiveSessionDirtying

0

오라클은 복제 문제를 재현 할 수 있음을 확인했습니다. 그냥 고칠 때까지 기다리십시오.

관련 문제