1

可能な限りシンプルなWebStartアプリケーションをファイルサーバー上に置いています。ディレクトリは次のもので構成されています。

foo__V1.1.jar
runfoo.jnlp

内容runfoo.jnlpは以下の通りです。

<?xml version="1.0" encoding="utf-8"?>
  <jnlp spec="1.0+" href="http://myserver.com/runfoo.jnlp" codebase="http://myserver.com">
  <information>
    <title>Foo</title>
  </information>
  <security>
    <all-permissions/>
  </security>
  <resources>
    <j2se version="1.7.0_06+" href="http://java.sun.com/products/autodl/j2se" />
    <jar href="foo.jar" main="true" version="1.0+"/>
    <property name="jnlp.versionEnabled" value="true"/>
  </resources>
  <application-desc name="Foo" main-class="com.myserver.foo.Foo" width="640" height="480" />
  <update check="always" policy="always" />
</jnlp>

問題は、Web Startがhttp://myserver.com/runfoo.jnlp?version-id=1.0%2Bにあるファイルにアクセスしようとしていて、見つからないことです。

この単純なインスタンスでWebStartが最新のjarバージョンを自動的に取得するために必要な追加の手順があると思いますが、多くのグーグルを実行した後、私が見つけたのは同じ手順を何度も繰り返すことです。

  • ファイルの名前を<file_name>__V<versionnumber>.jar
  • versionEnabledプロパティをjnlpに追加します
  • バージョン管理された良さをお楽しみください

明示的なファイル名を指定すると、jnlpファイルは完全に正常に実行されますが、バージョン管理を実装しようとすると常に失敗します。

重要なものが欠けていると確信していますが、どこにも見つかりませんでした。私のセットアップは単純ですが、それは可能な限り単純ではなく、機能することもできないと思います。

どんな助けでも大歓迎です:)


明示的な例外は次のとおりです。

com.sun.deploy.net.FailedDownloadException: Unable to load resource: (http://myserver.com/foo.jar?version-id=1.0%2B, 1.0+)

また、バージョン仕様からを削除しようとしました+が、同じエラーが発生します(もちろん、プラスが欠落していることを除けば)。jnlpfoo__V1.1.jarファイルへの書き込みは機能しますが、もちろんこれの全体的なポイントを打ち負かします。

4

2 に答える 2

3

バージョン管理されたファイル名は、クライアントが要求したときに何を提供するかを知るためにJNLPダウンロードサーブレットlib.jar?version=somethingによって使用される規則です。サーバー側でダウンロードサーブレットが必要です(またはmod_rewriteルールなどでその動作を複製する必要があります)。バージョン名が付いたプレーンファイルだけでは不十分です。

于 2013-01-11T09:34:27.820 に答える
0

フォロワーにとって、私にとって同様の問題

java.io.IOException: Error returned: 10 Could not locate resource
    at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
    at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
    at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

「アプリケーションを起動できません」

com.sun.deploy.net.FailedDownloadException: Unable to load resource: (http://host:port/webapp_name/app/jar-name.jar?version-id=1.5.0-20160707.182810-19, 1.5.0-20160707.182810-19)
    at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
    at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
    at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

「特別な内部ファイルversion.xmlが、デプロイされてweb-appディレクトリに存在するファイル名と正しく一致しなかった」という意味です。

参照:http ://docs.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/downloadservletguide.html

于 2016-07-15T18:01:45.780 に答える