可能な限りシンプルな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
ファイルへの書き込みは機能しますが、もちろんこれの全体的なポイントを打ち負かします。