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