[Seasar-user:13077] Re: jarファイル中のクラスでHotDeploy

Kazuya Sugimoto [E-MAIL ADDRESS DELETED]
2008年 2月 27日 (水) 09:26:44 JST


小林さん

杉本です。
URLUtil.disableURLCaches();を実行するようにしたら、例外が起きなくなりました。

ありがとうございます。助かりました。


08/02/26 に Koichi Kobayashi さんは書きました:
> 小林 (koichik) です.
>
> Date:    Tue, 26 Feb 2008 13:45:43 +0900
> From:    "Kazuya Sugimoto" <[E-MAIL ADDRESS DELETED]>
> To:      [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:13071] jarファイル中のクラスでHotDeploy
>
> > 下記issueをみると対応済みのようですが、HotDeployで
> > Jarファイル中のクラスをHotDeployしよとするとIORuntimeException
> > が発生してしまいます。
> > https://www.seasar.org/issues/browse/CONTAINER-9
>
> [CONTAINER-9] は S2RMI で ClassCastException が
> 発生するというものなので,本件とは無関係です.
>
> > Jarファイルが作られるのに時間がかかり間に合っていないのかなとも思った
> > のですが、時間を空けてjarファイルの更新日時を確認してから試しても駄目でした。
> > Tomcatを再起動すると例外は発生しなくなります。
> (略)
> > あと、例外発生後にJarファイルに含まれる対象のクラスをエラー前の元の
> > ソースコードに戻して、Jarファイルが更新されたのを確認してから試すと、
> > 例外が発生しませんでした。
>
> ここから想像するに,古い Jar ファイルがキャッシュ
> されているのかもしれません.
> # URLConnection はキャッシュするのがデフォルトらしい.
>
> 試しに,簡単な Servlet を作ってその init() の中で
>
> URLUtil.disableURLCaches();
>
> を呼び出してみてください.
> # URLUtil は org.seasar.framework.util パッケージ
>
> その Servlet を S2ContainerServlet より先に
> 初期化されるように web.xml の <load-on-startup> を
> 調整してください.
>
> これで解決するようなら Jar ファイルのキャッシュが
> 原因です.
>
>
> --
> <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
>


-- 
Kazuya Sugimoto
Microsoft MVP Visual Developer - Solutions Architect
http://d.hatena.ne.jp/sugimotokazuya/


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