[Seasar-user:7165] Re: [Seasar2] セッションに保存したクラスを取り出すとClassCastException発生
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2007年 4月 11日 (水) 00:00:23 JST
小林 (koichik) です.
Date: Tue, 10 Apr 2007 09:19:30 +0900
From: 原田 <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:7154] Re: [Seasar2] セッションに保存したクラスを取り出すとClassCastException発生
> > convention.dicon で設定されたルートパッケージ以下に
> > 属するクラスでかつ,本来のクラスローダ (HOT deploy 用
> > クラスローダの親) にロードされていないクラスです.
>
> いままでルートパッケージ以下で、決められたパッケージ(Dto,Action、Service,Logic等)のみが
> HOT deploy 専用のクラスローダにロードされていると思っていたのですが、
> 違ったということですね。
決められたパッケージ〜はコンポーネントとして
S2 コンテナに登録されますが,HOT deploy 用の
クラスローダにロードされるのはそれだけに
限りません.
> 「HOT deploy 対象から外した」といったのは、上記の決められたパッケージ以外(ルートがaa.bb.ccとするとaa.bb.items)に
> 移動したということですが、クラスローダー的にはHOT DEPLOYで、機能的にはHOT DEPLOYじゃ無い状態という
> ことですか?
機能的にというか S2 のコンポーネントではないが,
HOT deploy 用のクラスローダにロードされた状態という
ことになります.
> ところでHOT DEPLOY対象のままで、これに対応することってできないのですかね。
HttpSession を直接扱わず,インスタンス属性が session の
コンポーネント (Dto) を扱うようにすれば,S2 の方で
ClassCastException にならないようにしています.
--
<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 メーリングリストの案内