[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 メーリングリストの案内