[Seasar-user:7892] Re: [Seasar,Teeda]Session破棄時のセッションDto参照で例外発生

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 5月 29日 (火) 17:00:05 JST


小林 (koichik) です.

Date:    Tue, 29 May 2007 15:18:55 +0900
From:    <[E-MAIL ADDRESS DELETED]>
To:       <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:7885] [Seasar,Teeda]Session破棄時のセッションDto参照で例外発生

> sessionDestroyedが実行された際に、
> session.setAttributeで設定した情報は、
> 問題なく取得できますが、
> DI対象のもの
> (instance=InstanceType.SESSIONとか、
> diconにinstance=sessionと定義されているもの)は、
> Nullpointerとなります。

すみません,どういうことをやろうとしているのか
うまく読み取ることができませんでした.

> 対象のコード
> TestDto testDto = (TestDto) session.getAttribute("TestDto");
> String xxx = testDto.getXxx();

ここでセッションから取得している Dto は
S2 コンテナがインスタンスを生成してセッションに
設定したものということでしょうか?
つまり,セッションが作成されてから破棄されるまでの
どこかの時点で S2 コンテナからこの Dto を
getComponent() したということでしょうか?
もしそうなら,Dto がインスタンス化された時点の
状態のまま取得できるはずです.

セッションが作成されてから破棄されるまでの間に
getComponent() されたことがないコンポーネントは
インスタンス化されないので,破棄する時点で
Session#getAttribute() しても何も取得することは
できません.

> SessionDestroyed状態なので
> setterインジェクションは使用できず、
> session.getAttributeしていますが、
> これが原因でしょうか?

すみません,ここも意味がよく分かりませんでした.
やりたいこと,期待している動作と実際の動作の
違いなど,もう少し具体的に説明していただけると
助かります.


--
<signature>
   <name>Koichi Kobayashi</name>
   <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>




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