So-net無料ブログ作成

Glassfish v3 Prelude で encodeURL が動作しない? [NT]

DoCoMo の iモードなど Cookie が使用できないときにセッションを維持させるためには、全てのリンクにセッション ID を埋め込む必要がある。 Servlet の場合 encodeURL を利用すれば良い。

encodeURL が動作しないように見えたのは、Cookie が利用できるか否かの判定ができていなかったからのようだ。

Cookie が利用できるか否かは Servlet Container が自動的に判定すると思っていたのだが、Glassfish v3 Prelude ではうまくいかなかった。

Glassfish v3 Prelude で Cookie を使用しない設定は、sun-web.xml(このファイルは web.xml と同じディレクトリに配置する) で

<?xml version="1.0" encoding="UTF-8"?>
<sun-web-app>
    <session-config>
        <session-properties>
            <property name="enableCookies" value="false" />
        </session-properties>
    </session-config>
</sun-web-app>

と設定すればよい。このようにすると、Cookie が使用できる環境であっても使用しなくなる。

Nabble - java.net - glassfish users - No SessionID で Cookie とセッションについて取り上げられている。それによると、特に設定しなくても、既定で必要なプロパティが true になっているから、自動的に判定してくれると思うのだけれど...

glassfish-2 氏によると

V2.1
- automatically detection of url rewrite or cookie is not possible anymore
- only url rewriting or only cookie is possible definend in sun-web.xml
- have to add enableCookies=false to support all client requests
(中略)
V3
- automatically switching is possible again
- therefore its neccessary to remove enableCookies=false setted in V2.1 to get the default behaviour back

とある。つまり、v2.1では Cookie を使用できるか否かの判定は自動では出来なかったが、v3 では可能になったと読める。

もしかして、 Glassfish v3 Prelude ではまだ無理?

Nabble - java.net - glassfish users - No SessionID での話を、私はちゃんと理解できていないので、間違ってるかもしれないけど。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。