嗨,我对 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 缓存 - 对于每个用户。
有人有类似的问题吗?