[Seasar-user:6539] JavaWebStart上でのSMART Deployについて

BABA,Yasuyuki [E-MAIL ADDRESS DELETED]
2007年 3月 6日 (火) 22:55:23 JST


馬場と申します。

SMART Deployを使用した際にNamingConventionImplなどからjarファイルを見に
行く部分があります。ここで、jarファイルがファイルシステム上に存在するこ
とが前提になっているようで、JavaWebStartのようにHTTPでjarファイルを取得
する場合には例外が発生してしまいます。

具体的には、
org.seasar.framework.convention.impl.NamingConventionImpl.JarExistChecker
のコンストラクタで

SMART Deployを使用した際にNamingConventionImplなどからjarファイルを見に
行く部分があります。ここで、jarファイルがファイルシステム上に存在するこ
とが前提になっているようで、JavaWebStartのようにHTTPでjarファイルを取得
する場合に例外が発生してしまいます。

  jarFile = JarFileUtil.create(JarFileUtil.toJarFilePath(jarUrl));
としている箇所です。
JarFileUtil.toJarFilePath(jarUrl)で、いったんURLをパス文字列に変換して
JarFileオブジェクトを生成しますが、ここでプロトコルがhttpだった場合でも
ファイルシステムを検索してしまうのでIOExceptionが発生します。(変数
jarUrlは"http:〜.jar"となっています)

これは、以下のように URLConnection#openConnection()でJarFileを生成するこ
とで回避できるようです。
  JarURLConnection jarConnection
    = (JarURLConnection) jarUrl.openConnection();
  JarFile jarFile = jarConnection.getJarFile();

JarFileUtil#toJarFile()をこのように変更して、NamingConventionImplでその
メソッドを呼ぶように変更して確認しました。

ちょっと他の部分への影響がわからないのですが、問題ないのであれば修正して
いただけないでしょうか?


--------------------------------------
Start Yahoo! Auction now! Check out the cool campaign
http://pr.mail.yahoo.co.jp/auction/




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