[Seasar-user:6384] Re: 【S2Struts/Seasar】HOT DEPLOY時に ClasCastException
原田
[E-MAIL ADDRESS DELETED]
2007年 2月 27日 (火) 18:08:13 JST
原田です。
ありがとうございます。
そうですか、地道に対応していきます。
この辺、FAQに入っていてくれたりすると、うれしかったのですが・・・。
また、毎回違うクラスになってしまうということは、デシリアライズできないクラスになると
いうことですね。
HOT状態では注意が必要ですね。
以上よろしくお願いします。
Yasuo Higa <[E-MAIL ADDRESS DELETED]> wrote:
> ひがです。
>
> > 原田です。
> >
> > たびたびすみません。
> >
> > 現在SMART DEPLOY環境への移行時だということもあり、
> > HOT DEPLOYされるクラス群とされないクラス群があるのですが、
> > HOT DEPLOY時に、HOT DEPLOYされないクラスで、HOT DEPLOYされるクラスのコンポーネントを
> >
> > **** = (****)SingletonS2ContainerFactory.getContainer().getComponent(****.class);
> >
> > のように取得すると、ClasCastExceptionが出てしまいます。
> >
> > DIされる前のクラスを指定して、DIされたクラスが帰ってきて、実はDI前のクラスじゃないから
> > エラーになっているような感じです。
> >
> > まぁそういうクラスはHOT DEPLOYパッケージへ移動すればいいのですが、
> > コンポーネント名が変わってしまったりするので、いろいろ大変なのです。
> >
> > 何か避ける方法はありませんか?
>
> 現状だと残念ながらありません。
>
> HOTコンポーネントからHOTじゃないコンポーネントは参照できますが、
> その逆はできません。
>
> なぜならHOTなコンポーネントはリクエストのたびに
> 違うクラスになっているためです。
>
> もうちょっと(?しばらく先かも)するとAutoRegisterしたクラスも
> diconに登録したクラスもすべてHOTで扱えるようになるはずなので、
> HOTとHOT以外で悩むこともなくなるかも。
>
> Yasuo Higa
> The Seasar Project
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内