[Seasar-user:18641] Re: SessionLisenerから実行するスレッドからDAOが参照できない
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2009年 10月 15日 (木) 01:00:10 JST
小林 (koichik) です.
Date: Wed, 14 Oct 2009 21:56:36 +0900
From: "y.takaku" <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:18639] SessionLisenerから実行するスレッドからDAOが参照できない
> アプリケーション起動時にSessionListener上でインスタンスを作成し、スレッ
> ドを実行しています。このスレッドはアプリケーションの状態などを監視するた
> めのスレッドのようなものです。
>
> そのスレッドからDBにアクセスしようとすると、NullPointerExceptionとなって
> しまいます。
SessionListener や独自のスレッド上では
Seasar2 が必要とする外部コンテキストを
設定してください.
通常の HTTP リクエストを処理するスレッド上で
あれば,Seasar2 の提供する Filter が外部
コンテキストを設定します.
具体的には以下のクラスを参照してください.
org.seasar.framework.container.filter.S2ContainerFilter
個人的には Web コンテナ内で独自のスレッドを
起動することや,SessionListener から S2 コンテナを
参照することはオススメしません.
--
<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 メーリングリストの案内