[Seasar-user:11914] Re: [Teeda]public transient xxClass xxField;
"TAKEUCHI Shinichi / 竹
"TAKEUCHI Shinichi / 竹
2007年 12月 5日 (水) 13:46:01 JST
お世話になります、竹内です。
小林 (koichik)様、ひが様、回答ありがとうございます。
今後はSerializableはデータを引き継いだりSessionへの保存をする
クラスの場合に限定しようと思います。(最初のころはPageクラスが
保存されると思ってしまい、PageクラスをSerializableにしていた)
どうやら、NotSerializableException は当該Helperのフィールドに
置いた別のオブジェクトの影響で発生したようで、Helperそのものは
Serializableであったようです。
Entity や DTO に AOP を適用する必要性は確かに薄いと思いますが、
可能性があれば注意が必要かと思いました。
EntityはDolteng作成の一覧ページなどでのxxxItemsとして使われ、
それをSessionSaveなどの指定をする場合や、受け渡しデータとして
EntityをDTOの代わりに代用する場合にSerializableにしています。
DXOなどのS2がDIしてくれるInterfaceの場合も、間違って(?)Serializable
をextendsした場合、それをPageクラスのパブリックフィールドにすると
同じ現象になります。(ClassNotFoundException)
例) public interface xxDxo extends Serializable {
public void convert(a,b)
}
On Wed, 05 Dec 2007 04:00:14 +0900
Koichi Kobayashi <[E-MAIL ADDRESS DELETED]> wrote:
> 小林 (koichik) です.
>
> Date: Wed, 05 Dec 2007 02:02:19 +0900
> From: "TAKEUCHI Shinichi / 竹内 伸一" <[E-MAIL ADDRESS DELETED]>
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:11906] Re: [Teeda]public transient xxClass xxField;
>
> > 1)PageClass の共通の親クラスに パブリックフィールドがあり
> > そこにはSerializableなObjectが入る
>
> [Seasar-user:11011] では「Serializableでない」との
> ことだったので辻褄が合わないと思っていたのですが,
> Serializable だったのですね.それなら納得です.
>
> > 2)上記のObjectはHelperであり、S2がDIしてくれるもの
> > 3)HelperにはCustomizerが設定されておりS2がEnhanceしている
> > 参考:cutomizer.dicon に(A)の指定あり
> > 4)HotDeployで動作(env.txt が ut)
> > 5)同じ親クラスを継承する別のPageに遷移
> >
> > メカニズムも考察してみましたが、あっているでしょうか?
>
> はい.
>
> > ■対策として想定されること
> > HelperなどのEnhanceされる可能性のあるものはSerializable不可とするか、
>
> それがいいと思います.
>
> > パブリックはやめてSetterだけを作成する形にする
>
> Teeda 1.0.12 からは public field でも transient を
> 付けると引き継がないようになります.
>
> > EntityやDTOなどもSerializableにしてPageにくっつけた場合に、Customizer
> > やAOPの直接指定でEnhanceされた場合に同じ現象が発生するような気がしますが
> > どんなもんでしょうか?
>
> Entity や DTO に AOP を適用する必要がないと思います.
> Entity は Serializable にする必要もないと思います.
>
>
> --
> <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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
--
TAKEUCHI Shinichi / 竹内 伸一 <[E-MAIL ADDRESS DELETED]>
Seasar-user メーリングリストの案内