Weblogicクラスタに2つのサーバーがあり、そのクラスターに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
私はSession Scoped Backing Beanを持っています。すべてのDomainオブジェクトはすでにシリアル化されています。
環境: のWebLogic Server 12cの JSF2
試すhttp://stackoverflow.com/questions/12094077/jsf-session-fail-over-and-partial-state-saving – abdelhady