[Seasar-user:10619] Re: HOT deploy時だけNotSerializableExceptionが発生してしまう

Junichi Kato [E-MAIL ADDRESS DELETED]
2007年 9月 18日 (火) 20:17:25 JST


小林さん,
加藤です.

なるほど,参考になりました.
ありがとうございました.



On Tue, 18 Sep 2007 20:00:08 +0900
Koichi Kobayashi <[E-MAIL ADDRESS DELETED]> wrote:

> 小林 (koichik) です.
> 
> Date:    Tue, 18 Sep 2007 19:10:54 +0900
> From:    Junichi Kato <[E-MAIL ADDRESS DELETED]>
> To:       [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:10615] HOT deploy時だけNotSerializableExceptionが発生してしまう
> 
> > 以下のようなセッションで管理するDTOを作っております
> > このPaymentSessionDtoを使ってセッションに保存しようとしているのですが,以下のような例外がHOT deploy時のみ発生します.
> > PaymentSessionDtoには,PaymentFutureのプロパティがあるのですが,Serializableを実装していませんが,それが原因だと思うのですが,
> > なぜ,HOT deploy時だけ発生するのでしょうか?
> 
> HOT deploy の場合,リクエストの度にクラスが
> 変わる (ロードされる) ため,前のリクエストで
> セッションに保存されているオブジェクト (前回の
> クラスのインスタンス) をデシリアライズ&
> シリアライズして,今回のクラスのインスタンスとして
> 作り替えています.
> そのため,Serializable の問題がすぐに表面化します.
> 
> > このままで,COOL, WARM deploy時でも例外が発生しないのですが,問題ありますでしょうか?
> 
> Web コンテナがセッションに保持しているオブジェクトを
> ファイルなどに外部化すると同じ例外になります.
> Seasar2.4 の DbSession を使っている場合も同じです.
> 
> セッションに保持されるクラスは Serializable にするか,
> Serializable でない型のフィールドに transient を
> 付けるかのどちらかにすべきです.
> 
> 
> --
> <signature>
>    <name>Koichi Kobayashi</name>
>    <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
> </signature>
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user

───────────────────────────────
 株式会社 グランテック
 代表取締役社長
 加藤 潤一 Junichi Kato

〒154-0012
東京都世田谷区駒沢2-16-1 サンドー駒沢ビル4F
TEL 050-5538-2383  FAX 03-3487-7211
HP : http://www.grandtech.jp/
BLOG : http://d.hatena.ne.jp/j5ik2o/
E-MAIL : [E-MAIL ADDRESS DELETED]




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