セッション共有について

PALポータルも各ポートレットもアプリケーションサーバー上では 1 つのウェブアプリケーションとして動作しています。 ポートレットへの呼び出しは、ポータルを経由するアクセスであるので、クロスコンテキストなアクセスになります。 そのため、通常の Tomcat では、ポートレットでセッションを取得して、アプリケーションスコープで値を保存しても、そのポートレットのコンテキストにあるサーブレットにアクセスしてセッションからその値を取得できません。

PALポータルでは、ポートレットのコンテキストにある、ポートレットのセッションとサーブレットのセッションにある値を共有できるように、デフォルトで Tomcat に対して、emptySessionPath を有効にしています。 もし、PALポータルにバンドルされた Tomcat を利用しない場合は、その値を有効にする必要があります。

emptySessionPath の設定

PALポータルにバンドルされた Tomcat では、emptySessionPath を true で設定されています。 emptySessionPath を設定する場合は、conf/server.xml の以下の箇所に emptySessionPath を追加します。

    <Connector port="8080" maxHttpHeaderSize="8192"
               emptySessionPath="true"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />

値を変更後、設定を保存し、ポータルを再起動後に有効になります。