[Seasar-user:18060] Re: 修正したソースが反映されない事例

大上陽一 [E-MAIL ADDRESS DELETED]
2009年 7月 24日 (金) 17:35:07 JST


TO:小林様

早い返信有難うございました。

小林様のご指摘の通りHOT deploy 非対象のクラスが原因の可能性がありますので調査・対応してみます。
※回避方法まで記載していただき本当に助かりました。
すでに回避方法が記載されていたんですね。調査不足すいませんでした。。。

以上、よろしくお願いします。


2009/07/24 17:00 に Koichi Kobayashi<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 小林 (koichik) です.
>
> Date:    Fri, 24 Jul 2009 09:39:30 +0900
> From:    大上陽一 <[E-MAIL ADDRESS DELETED]>
> To:      [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:18057] 修正したソースが反映されない事例
>
>> 反映されないソースは共通機能をまとめたクラスで、
>> 複数のクラスでインスタンス化されています。
>
> 共通機能をまとめたクラスを使用している複数の
> クラスの中に,HOT deploy 非対象のクラスが
> 含まれているのだと思われます.
>
> HOT deploy 非対象のクラスとは,ルートパッケージ
> 以下にないクラスや,dicon に定義されたクラス,
> web.xml に定義された Filter や Listener などです.
>
> HOT deploy 対象クラスが非対象クラスから使用
> されると WebappClassLoader にロードされてしまい,
> HOT deploy できなくなります.
>
> Seasar2.4.35 以降では,この状態になると
>
> HOT deploy対象クラス(Hoge)が非対象クラスから参照されて通常のクラスローダにロードされています。
>
> という警告が出力されます.
>
> 回避策としては [Seasar-user:16915] でも書いたように
>
> http://ml.seasar.org/archives/seasar-user/2009-February/016916.html
> ------------------------------------------------------------
> ■ SMART deploy 対象・非対象を明確に分ける
>
> アプリケーション全体を SMART deploy 対象に
> するのではなく,その一部だけを SMART deploy
> 対象にする.
> 例えばアプリケーション全体のパッケージが
>
> jp.co.xxx.yyyy.〜
>
> である場合,SMART deploy のルートパッケージは
>
> jp.co.xxx.yyyy.smart
>
> のようにする.
>
> その上で,SMART deploy 非対象クラスから
> SMART deploy 対象クラスは参照しない.
>
> できれば (IDE における) プロジェクトを別に
> してしまい,SMART deploy 非対象プロジェクトは
> SMART deploy 対象プロジェクトを参照できなくする.
>
> SMART deploy 非対象となるのは,Servlet や
> Filter など Seasar2 で管理されないクラスや,
> dicon ファイルに定義されるクラス,および
> それらのクラスから参照されるクラスです.
>
> これは HOT deploy で ClassCastException や
> LinkageError を避けるために必要です.
> ------------------------------------------------------------
>
>> 現在の対応としては上記事例が発生したらtomcatを再起動していますので、
>> 開発自体は問題なく出来ておりますが原因が不明のため将来何かしら不具合が
>> 発生するのではと危惧しています。
>
> COOL deploy で問題になることはありません.
>
>
> --
> <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
>


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