Java Webstart间歇性JAR没有更新

我们使用java Webstart在我们的Intranet上部署java应用程序。 该应用程序接收频繁更新。 在我们更新了Web服务器上的JAR / WAR(更改时间戳)后,用户将在一段时间内从桌面图标启动应用程序,Java Webstart将启动旧版本而不是下载新版本。

这是我们的JNLP的粘贴,因为您可以看到offline-allowed打开,但始终更新检查始终和策略。 此外,下载标志是渴望。 根据我的理解,这些选项应始终导致检查服务器上的时间戳和下载JAR文件的缓存。

我开始对Webstart感到沮丧! 有没有人见过类似的问题? 有解决方案? 我厌倦了通过每三分之一或五次更新手动清除他们的webstart缓存来引导人们。

                    -D   

你可能已经解决了这个问题 – 但是jnlp spec =“1.0+” – 只有在jnlp spec 6.0+之后才支持该元素。 可能那是你更新失败的原因之一。

假设客户端JRE是最新的,您可以按照此线程中的建议尝试 ,并在JNLP语法文档中进行描述。

我遇到了和你一样的问题,并通过以下方式解决了这个问题:

  1. 更改

  2. 将$ VERSION放入Run

我们会为每个部署自动更新$ VERSION。

我知道这是一个丑陋的解决方案,但它是每次都适合我们的解决方案。

可能与这篇文章有关, http://www.coderanch.com/t/528570/JNLP-Web-Start/java/Do-jnlp-file-updates-itself

此问题是由offline-allowed标记引起的。

根据JNLP规范

如果指定了offline-allowed,则Java Web Start还将检查是否有可用的更新。 但是,如果已经下载了应用程序,则检查将在几秒钟后超时,在这种情况下,将启动缓存的应用程序。 如果服务器连接速度相当快, 通常会运行最新版本的应用程序,但不能保证 。 但是,该应用程序可以脱机运行。

我们已经在十几个国家/地区分发了java Web启动应用程序,当我们发现应用程序没有正确更新时,它是针对县网络的错误配置,或者是用户计算机的网络设置,主要是代理。 在我们在西class牙的中央主管java网站开始总是工作正常。

我一直在使用java webstart nextx.jar克隆。 我跟踪我没有更新JAR问题到使用URLConnection.getLastUpdated()方法。 由于它使用HEAD方法获取文件名的lastUpdated,这就是为什么有时因为缓存getLastUpdated()而无法下载的原因。 我们决定使用我们自己的刷新应用程序的方法,因为webstart存在缺陷。

我有这个问题只是因为我没有让应用程序打开时间足以完成更新。

如果您有这个选项:在JNLP中更新check =“background” ,请在关闭应用程序之前等待一段时间,以便完成更新(在后台运行)。