5

こんにちは、Java Webstart に問題があります。バージョニングが有効になっている JNLP 構成があります。

 <property name="jnlp.versionEnabled" value="true"/>

各 jar のバージョン番号を使用しています。

<jar href="project.jar" version="2.5.7.0"/>.

また、Maven Jar 署名者プラグインを使用してアプリケーション jar に署名しています。

これまでのところ、すべて順調です。

アプリケーションの新しいリリースを行うたびに、各 jar の新しいバージョン番号で JNLP ファイルを変更します (すべての jar がバージョンを変更するわけではありません) が、上記の project.jar の例と同様に、このバージョン番号は 2.5 からインクリメントされます。 7.0 から 2.5.7.1。例えば

<jar href="project.jar" version="2.5.7.1"/>.

ユーザーが JNLP ファイルを介して新しいアプリケーションをダウンロードすると、次のエラーが表示されます。

#### Java Web Start Error:
#### JAR resources in JNLP file are not signed by same certificate

Webstart に追加の DEBUG を追加したところ、Java Concole で次のエラーが見つかりました。

security: Validating cached jar url=http://servername/lib/project_V2.5.7.1.jar ffile=C:\Documents and Settings\username\Application Data\Sun\Java\Deployment\cache\6.0\10\57344cca-719709af-2.5.7.1- com.sun.deploy.cache.CachedJarFile@11e1bbf
security: Have 0 common certificates after processing http://servername/lib/project.jar
network: Remove cache entry: http:///lib/project__V2.5.7.1.jar

新しいリリース/ダウンロードの一部であるため、Webstart は project_V2.5.7.1.jar (存在しない) という名前の jar のローカル キャッシュをチェックしようとしているようです。

JAR が見つからないため、証明書が一致しないと想定されるため、次のエラーが発生します。

JAR resources in JNLP file are not signed by same certificate.

これは Webstart エラーだと思います! 各リリースの前に、すべてのユーザーに対して、webstart キャッシュを手動でクリアする必要があるため、これは私たちに多くの苦痛を引き起こしています。

誰にも同様の問題がありますか?

4

3 に答える 3

1

私の経験に基づくと、バージョン番号を 2.5.7.0 から 2.5.7.1 に増やし、古いマニフェスト エントリを削除せずに jar に再​​度署名すると、webstart はリソースが署名されていないと考える傾向があると思います。同じ証明書によって。役立つかもしれないあなたが試すことができる1つのことは次のとおりです。

問題の原因となっている jar を解凍し、そこからすべての META-INF ディレクトリを削除し、jar して再度署名します。

これが役立つかどうか教えてください。

于 2012-07-20T05:37:45.977 に答える
0

あなたの質問によると、「アプリケーションの新しいリリースを行うたびに、各jarの新しいバージョン番号でJNLPファイルを変更します(すべてのjarがバージョンを変更するわけではありません)」

では、他の jar のバージョン番号も変更しましたか?

新しい証明書を使用して jar ファイルに署名する場合、すべての jar ファイルのバージョン番号を変更する必要があります。そうしないと、同じバージョン番号を持つが新しい証明書で署名された jar ファイルがダウンロードされず、問題が発生します。

于 2013-02-22T02:13:29.287 に答える