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语法文档中进行描述。
我遇到了和你一样的问题,并通过以下方式解决了这个问题:
-
更改
至
-
将$ 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” ,请在关闭应用程序之前等待一段时间,以便完成更新(在后台运行)。