[Seasar-user:8745] [Teeda] 次ページへのプロパティ引き継ぎ時にInstantiationException
PPOI
[E-MAIL ADDRESS DELETED]
2007年 6月 28日 (木) 00:04:28 JST
PPOIです。
S2Container 2.4.13 + Teeda Extension 1.0.8-SNAPSHOT(20070619.050220-2)
で開発をしています。
HotDeployを使用している状態で,Pageクラスに「Serializableではあるがデ
フォルトコンストラクタを持たない型のプロパティ」がある場合,次ページへの
引き継ぎ時に InstantiationException が throw されてしまいます。
この現象はWarm/CoolDeploy時には発生しません。
ざっとソースコードを追ったのですが,次ページに引き継ぐプロパティの値を
復元する処理の中で,HotDeployが有効な場合に呼び出される HotdeployUtil#rebuildBean()
が,新しいインスタンスを生成する際に ClassUtil#newInstance() を使用して
いるためにこの現象が発生しています。
とりあえずSmartDeployのモードをWarmにして回避していますが,やはり開発
効率を考えるとHotで問題なく動作するのが一番助かります。
あるいはデフォルトコンストラクタを持つDTOを作成,それをPageのプロパティ
の型とし,DXOなどで値を詰め替えることでも回避できると思いますが,それは
それで手間がかかるので出来れば避けたいと思っています。
例えば,HotdeployUtil#rebuildBean() の中で,デフォルトコンストラクタが
未定義の場合は引数のvalueをそのまま返すようにするなどして対応していただ
くことは可能でしょうか?
ちょっとわたわたしていて,その場合どんな影響がでるか把握仕切れていない
のですが,是非対応策の検討をお願いいたします。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
PPOI
E-mail: [E-MAIL ADDRESS DELETED]
Key fingerprint: 6F7E 2FED 72A7 C84C 9E5A 2EAC 6850 E1DF 0921 CAFB
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Seasar-user メーリングリストの案内