JNLP不会自动更新JAR文件

时间:2013-09-28 07:43:32

标签: java java-web-start jnlp auto-update

我在这样的环境中工作,我们必须每2个月更新一次客户jar。因此,作为一种解决方案,我建议使用此方法来使用JNLP,我们不必担心每个用户都在使用最新版本。因为,每个部门有超过100个客户。

但问题是JNLP未升级新的jar文件,以下是my.jnlp文件

<?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="1.0+" codebase="http://192.168.1.26:8080/" href="Test.jnlp">
<information>
    <title>HC</title>
    <vendor>DRL</vendor>
    <homepage href="http://192.168.1.26:8080/" />
    <description>DRL</description>
    <offline-allowed/>
</information>
<security>
    <all-permissions/>
</security>
<resources>
    <j2se version="1.6+" />
    <jar href="JnlpTest.jar" download="eager" />
</resources>
<application-desc 
    name="HC-DRL"
    main-class="com.drl.simap.client.module.ui.Splash" />
</jnlp>

我的工作环境 Tomcat-6.0服务器和以下教程     here

1 个答案:

答案 0 :(得分:0)

如果您下载jnlp spec并查看第6章,则有一整节关于缓存:“6下载和缓存资源”

您可以尝试在jar文件中添加版本号,然后使用jnlp jar版本属性。

如果您目前不这样做,则规范说明如下:

  

必须找到使用基本下载协议下载的条目   在基于URL的缓存中。从HTTP获取的时间戳   应答的Last-Modified头字段中的GET请求应该是   与下载的资源一起存储。时间戳用于   确定服务器上的副本是否更新。

     

JNLP客户端不能假定HTTP GET请求将返回   每个请求都有相同的JAR文件。 JNLP客户必须定期   检查Web服务器以查看是否有可用的更新版本。这个   建议在申请之前进行检查   已启动,但JNLP客户端使用的确切算法取决于   特别实施。例如,如果JNLP客户端处于脱机状态,   不需要进行检查。

     

上述缓存规则也适用于下载的扩展描述符   使用版本属性所在的扩展下载协议   未指定。