[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 メーリングリストの案内