可以将Java Web Start配置为更新当前服务器版本而不是最新版本吗?

时间:2014-07-04 13:24:23

标签: java java-web-start

到目前为止总结我的研究似乎Java Web Start将使用通过Web服务器提供的时间戳来确定某个jar是否已更新。更新行为可能受到jnlp元素的影响"更新"元素"检查"和"政策"允许定义更新检查的频率以及是否提示用户确认更新。

但是,我没有找到任何机会来定义除时间戳比较之外的其他机制来确定应用程序是否已更新。实际上,如果不是最新的,但是当前的服务器版本应该下载到客户端,如果它对我们更有意义,那么我们现在正在进行讨论。这也可以是例如是服务器上已恢复的旧服务器版本,因为以前活动的较新服务器版本已经过滚动支持。 在服务器端应用程序回滚的情况下,每个用户此时必须手动清除其Java缓存,这当然可能但不是很方便。

Java Web Start是否可以配置/强制始终从服务器下载应用程序版本,如果这是"不同"来自本地缓存的版本?

1 个答案:

答案 0 :(得分:0)

如果它完全符合您的需求,我不会知道,但请查看webstart Version Download Protocol

总结一下: 使用版本化下载,您可以指定要在jnlp文件中使用的每个jar版本,如下所示:

    <jar href="jackson-core.jar" version="2.0.2" />

并在服务器上部署jar文件,文件名为jackson-core__V2.0.2.jar

使用此协议,webstart将仅使用其版本与jnlp-file中给定版本完全匹配的jar文件。另一个优点是,当指定版本已存在于本地缓存中时,webstart将不再尝试再次下载该版本 - 无论时间戳等。

优点:

  • 完全控制通过jnlp-file使用的版本。
  • 减少对缓存中存在的jar的下载请求

缺点:

  • 新版本需要更改jnlp-file
  • 不适合SNAPSHOT版本,因为文件的时间戳被完全忽略,版本号不会因SNAPSHOT版本而改变。