[Seasar-user:17177] Re: HttpServletExternalContext から取得した HttpSession が NULL となる

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2009年 4月 3日 (金) 16:00:58 JST


小林 (koichik) です.

Date:    Fri, 3 Apr 2009 13:28:49 +0900
From:    [E-MAIL ADDRESS DELETED]
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:17176] HttpServletExternalContext から取得した HttpSession が NULL となる

> この際に何かをきっかけに、返されたHttpSession が突然NULLとなってしまいます。

これは特定のブラウザとのセッションにおいて
単発で起こるのでしょうか?
それともすべてのブラウザとのセッションで同時に
起こるのでしょうか?

> ■質問
> 
>  どうようなタイミング、もしくは事象が発生すればHttpSessionがNULLとなるのでしょうか?

HttpServletExternalContext では HttpSession を
HttpServletRequest#getSession() で取得しているので,
Servlet 仕様上は HttpSession が null になることは
ないはずです.

Web コンテナの HttpServletRequest#getSession() が
仕様に反して null を返すとは考えにくいので,
Filter 等でラップしている HttpServletRequest が 
null を返している可能性が高いのではないかと思います.

まずは HttpServletRequest#getSession() が
本当に null を返していることを確認して,その 
(null を返している) HttpServletRequest が
Web コンテナの提供するものなのか Filter でラップ
されたものなのかを確認してみてください.

> 当システムとしてはExternalContextからのHttpSession取得をやめることでの対応
> を考えておりますが、

HttpServletRequest#getSession() が null を
返しているなら ExternalContext を使わなくても
同じことになるのでは.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



Seasar-user メーリングリストの案内