| Oracle® Fusion Middleware Oracle Coherence*WebでのHTTPセッション・マネージメントの管理 12c (12.2.1.2.0) E82727-01 |
|
![]() 前 |
![]() 次 |
この章の構成は、次のとおりです。
JSFとMyFacesは、セッション・オブジェクトにおけるビューの状態のキャッシュを試みます。この状態データは、デフォルトではシリアライズ可能ですが、可能でない場合もあります。次に例を示します。
Coherence*Webがシリアライズ不可能なクラスのために、IllegalStateExceptionをレポートした際、Webアプリケーションによってセッションに配置されたすべての属性がシリアライズ可能な場合、レンダリングされたページの非表示フィールドにビューの状態を格納するようにJSF/MyFacesを構成する必要があります。
Webアプリケーションによってセッション・オブジェクトにシリアライズ不可能なオブジェクトが書き込まれる場合、coherence-preserve-attributesコンテキスト・パラメータをtrueに設定する必要があります。
JSFパラメータのjavax.faces.STATE_SAVING_METHODは、リクエスト間におけるビューの状態が格納される場所を特定します。デフォルトでは、状態はサーブレット・セッションに保存されます。web.xmlファイルのcontext-param行でSTATE_SAVING_METHODパラメータをclientに設定し、レンダリングされたページの非表示フィールドにビュー全体の状態をJSFが格納するようにします。そのように設定しない場合、セッション・オブジェクトにシリアライズ不可能な状態のキャッシュをJSFで試みることがあります。
例7-1は、web.xmlファイルのSTATE_SAVING_METHODパラメータの設定を示しています。
例7-1 web.xmlファイルのSTATE_SAVING_METHODの設定
...
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
...
Coherence*Web WebInstallerでMyFacesアプリケーションをデプロイする場合(設定済アプリケーションの場合)、MyFacesのバージョンに応じて追加手順の実行が必要な場合もあります。
Coherence*Web WebInstallerを使用して、1.1.nより古いバージョンのMyFacesで構築されたWebアプリケーションをデプロイする場合、追加手順を実行する必要はありません。
Coherence*Web WebInstallerを使用して、1.2.xバージョンのMyFacesで構築されたWebアプリケーションをデプロイする場合、web.xmlファイルにorg.apache.myfaces.DELEGATE_FACES_SERVLETコンテキスト・パラメータを追加します。このパラメータにより、デフォルトのjavax.faces.webapp.FacesServletのかわりにカスタム・サーブレットを指定できます。
例7-2は、web.xmlファイルのDELEGATE_FACES_SERVLETコンテキスト・パラメータの設定を示しています。
例7-2 web.xmlファイルのDELEGATE_FACES_SERVLETの設定
...
<context-param>
<param-name>org.apache.myfaces.DELEGATE_FACES_SERVLET</param-name>
<param-value>com.tangosol.coherence.servlet.api23.ServletWrapper</param-value>
</context-param>
...
Coherence*Web WebInstallerを使用してJSFリファレンス実装(Mojarra)に基づくWebアプリケーションをデプロイしている場合、web.xmlファイルのservlet行でFacesServletクラスを宣言する必要があります。
例7-3 web.xmlファイルにおけるFaces Servletの宣言
...
<servlet>
<servlet-name>Faces Servlet (for loading config)</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
...