[Seasar-user:17180] Re: HttpServletExternalContext から取得した HttpSession が NULL となる
OKADA Ikue
[E-MAIL ADDRESS DELETED]
2009年 4月 3日 (金) 18:27:03 JST
岡田と申します。
> 現在お客様の環境でHttpServletExternalContextから突然HttpSessionを取得することが
> できなくなる現象が発生しております。
(中略)
> お客様情報ですと、一度発生したらアプリケーションを再起動するまで直らないとのことなので、
> 何か環境に依存しているのではと思われますが、よく分からない状態です。
以前、[Seasar-user:15421]で、もしかしたら似た現象かもしれない内容を
質問させていただいたことがあります。
http://ml.seasar.org/archives/seasar-user/2008-August/015323.html
http://ml.seasar.org/archives/seasar-user/2008-August/015324.html
http://ml.seasar.org/archives/seasar-user/2008-August/015330.html
そのときは解決に時間がかかり、結局、根本的な原因はわからなかったのですが
以下のように回避できました。
コンポーネントを使うEJBでは、当初、ejbCreate()実行時に
SingletonS2ContainerFactory#getContainer()でS2Containerのインスタンスを取得し、
フィールドに保持していました。
private transient S2Container container;
...
public void ejbCreate() {
container = SingletonS2ContainerFactory.getContainer();
...
}
これを、S2ContainerFactoryからS2Containerを生成するように変更したところ
稼働中にExternalContextがnullになるエラーは発生しなくなりました。
private transient S2Container container;
...
public void ejbCreate() {
container = S2ContainerFactory.create("app.dicon");
container.init();
...
}
状況は違いますが、もし何かのヒントになりましたら幸いです。
# 以前のときに結果のご報告ができていなくて、申し訳ございません。。。
よろしくお願いいたします。
Seasar-user メーリングリストの案内