- - PR -
【JWS】JNLP APIのDownloadServiceについて
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-05-26 10:11
お初にお目にかかります。JavaWebStartについて質問させて下さい。
JavaアプリケーションでのC/Sのシステムで、クライアント側のリソース(定数等)を クライアントアプリケーション起動中にダウンロードして書き換えたいと考えています。 そこでJNLP APIのDownloadServiceが使用できるかと考え、試してみましたが 進捗ダイアログは出るものの、一向にダウンロードが始まりません。 jnlp-servletのログにもサーブレットが起動された旨のログが出力されません。 JavaWebStartで初回のアプリケーション、リソースファイルのダウンロードは 正常に実行できました。以下の環境で動作させています。 サーバ:WebLogic8.1J OS:WindowsXP JDK:141_05 JWS開発キット:javaws-1_2-i-dev.zip ※自前証明書で署名済み 【JNLPファイル】 <?xml version="1.0" encoding="utf-8"?> <jnlp spec="1.0+" codebase="$$codebase" href="$$name"> <information> <title>ResourceTest</title> <vendor>hoge.</vendor> <offline-allowed/> </information> <security><all-permissions/></security> <resources> <j2se version="1.4"/> <jar href="jar/GetResource.jar" main="true"/> <jar href="jar/Resource.jar" version="1.0"/> <jar href="jar/jnlp.jar"/> </resources> <application-desc main-class="test.GetResource"/> </jnlp> /jarフォルダには Resource-1.0.jar、Resource-2.0.jar、version.xmlが配置されています。 【version.xml】 <jnlp-versions> <resource> <pattern> <name>Resource.jar</name> <version-id>1.0</version-id> </pattern> <file>Resource-1.0.jar</file> </resource> <resource> <pattern> <name>Resource.jar</name> <version-id>2.0</version-id> </pattern> <file>Resource-2.0.jar</file> </resource> </jnlp-versions> DownloadServiceを使用している箇所は以下の通りです。 http://java.sun.com/products/javawebstart/1.2/ja/docs/developersguide_ja.html#api を参考にしました。 DownloadService ds; try { // キャッシュされているか確認 URL url = new URL("http://hostname:7001/jar/Resource.jar"); boolean cached = ds.isResourceCached(url,"2.0"); // キャッシュされていれば削除 if (cached) { ds.removeResource(url,"1.0"); } // バージョン2.0をロード DownloadServiceListener dsl = ds.getDefaultProgressWindow(); ds.loadResource(url, "2.0", dsl); // <※ } catch (Exception exp) { exp.printStackTrace(); } ※の箇所進捗ダイアログは表示されるが無反応、DL始まらず、表示されたまま。 第二引数を"1.0"にするとResource-1.0.jarが正常にダウンロードされます。 (ダイアログは一瞬表示されます) ちなみに http://hostname:7001/jar/Resource.jar?version-id=2.0 とブラウザからリクエストすると「Resource-2.0.jar」が ダウンロードできます。(サーブレットが動作したログも出ます。) 原因が分る方、そもそも使い方が誤っていると思う方 些細な情報でも結構ですのでご意見下さい。 長文失礼しました。 |
|
投稿日時: 2004-05-26 10:14
boolean cached = ds.isResourceCached(url,"2.0");
↓ boolean cached = ds.isResourceCached(url,"1.0"); です失礼しました。 |
1
