Java Web Start资源jar已将跳过更新检查

时间:2014-07-03 09:39:23

标签: java java-web-start jnlp

我们有一个很大的应用程序,包含许多jar文件,最近已经停止更新自己。所有jar文件都由我们签名。通常当我们发布应用程序时,只有一个jar文件被更新,通常更改只有几个字节,我们不对jar文件使用版本控制(我们可能每天多次更新这个jar文件)。好吧,如果检测到新版本,那么web start必须重新加载从多个jar文件中更新的jar文件,但最近通常不会。我们不能要求用户每次清除他们的cashe(这将加载最新的jar文件),所以我必须到底。 我第一次开始谷歌搜索,并首先在我的jnlp中添加了这一行:

<update check="always" policy="always" />

这没有做到这一点。但是,我尝试将其更改为:

<update check="background" policy="always" />

这确实给了我一些有趣的发现。对于每个jar文件,控制台都给出了以下行:

Resource (our website)/(our jar).jar has future expires: Sat Aug 02 11:01:08 CEST 2014 update check skipped.

因为每个文件的“未来过期”设置为8月2日星期六11:01:08,所以会跳过jar文件。 (记录,即将来一个月左右)为什么会这样?这个未来的到期日期是从哪里来的,为什么它会破坏我们的Web启动应用程序更新?我们如何解决它?

1 个答案:

答案 0 :(得分:1)

我终于发现问题是网络管理员在网络服务器上添加了一些默认缓存标题来加速网页,但这些也被用于jar文件。 (他添加了ExpiresDefault“访问加1个月”) 他现在删除了jar-files / jnlp-files的头文件,但是已经下载的jar文件仍然有这个expiresdefault-property。因此,我们还必须为登录我们服务器的用户添加以下登录脚本:

IF EXIST %UserProfile%\javawsclearcache.txt (
    exit /B
) ELSE (
    echo. 2>%UserProfile%\javawsclearcache.txt
    javaws -uninstall
)

这需要照顾大部分用户群,但是对于那些没有从我们自己的服务器运行应用程序的用户来说,幸运的是,我很快就会在暑假,所以本月不会有很多更新,从8月2日开始,它也将开始定期为他们更新我猜...