Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

GlassFishのタイムアウトでログインページも破棄されてしまう…?

目下内部でテスト中なのですが、1つショボイけど厄介そうなバグが上がりました(^^;

今回はGlassFishのフロントにApacheを置かないのですが(そもそもそういうことがあること知らなかった無知な自分でしたが…twitter上で色々アドバイス頂きましたが、まずはスモールスタートにてそういうことに)、ログイン画面は普通にxhtmlとして作っています。

で、指摘があったのは

ログイン画面を表示したまま長時間放置してて、ログインしようとしたら
エラーページに飛んだ。

というものでした(^^;うーん。

表示しただけだったらBakingBeanも生成前だし、そんなはずは…と思ったら再現したので、原因調査も含めて超シンプルな以下サンプル作ってみたのですが…。

indexページ

<h:head>
    <title>タイムアウト確認</title>
</h:head>
<h:body>
    <h:form>
        <h:commandButton value="次ページ" action="next.xhtml" />
    </h:form>
</h:body>

あともう1つ、遷移先のnext.xhtmlを用意します。
BackingBeanすら作ってない(^^;

で、web.xmlにて

<session-config>
    <session-timeout>
        1
    </session-timeout>
</session-config>

として、タイムアウトを1分にして実験。

まずは遷移できることを確認した後に、再度最初の画面を起動して
f:id:kikutaro777:20130622123831j:plain

1分ちょっとしてボタン押下すると…
f:id:kikutaro777:20130622123905j:plain

なん…だと ...... orz

そうですか。

少しぐぐってみたら、同じ悩み持ってる人はいそうでした

ただ、対策としては例外を拾ってログインページへ戻す、というものでした。

ログイン画面起動したまま、ログインしようとしたら(裏ではタイムアウトしていて)またログイン画面を表示、という流れが受け入れられるかどうか…(^^;うーん悩ましい。

web.xmlのsession-timeoutタグでこのページは除外みたいなオプションあれば…と思ったけどなさそうな。。。

最悪、PrimeFacesの以下pollingコンポとかで(ログイン画面だけ)ポーリング…?とか思いつつ(^^;
http://www.primefaces.org/showcase/ui/poll.jsf

詳細な調査は来週やる予定ですー。

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村