即使文件在服务器中更改,JNLP文件也始终从缓存中下载

时间:2012-04-03 08:40:02

标签: java applet jnlp java-web-start next-generation-plugin

我们在一个基于Java-Applet的Web应用程序中获得了性能。因此我们实现了JNLP概念以改善applet加载。

根据JNLP,

JAR文件将首次下载到客户端计算机,并将在本地缓存

如果服务器中的applet版本与缓存中的applet版本匹配,则不会下载applet,而是从缓存中加载

如果服务器端的JAR版本有任何更改,缓存中的旧JAR将替换为新的JAR

但在我们的应用程序中,它没有按预期工作。我们发现jnlp文件本身来自缓存,因此它包含旧的jar版本。

有没有什么方法可以在每次浏览器关闭时单独下载jnlp文件? 还是有其他替代方法来解决这个问题吗?

非常感谢任何帮助!!

JNLP档案

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="" version="2.0.0.0">
    <information>
        <title>Active Viewer</title>
        <vendor>Platts</vendor>
        <offline-allowed/> 
    </information>
    <resources>
        <j2se version="1.6+"
              href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="EWSApplet.jar" main="true" version="9.3.5.0" />
        <property name="jnlp.versionEnabled" value="true"/>
    </resources>
    <applet-desc name="EWSApplet"
                 main-class="com.mycompany.ew.applet.EWS_Config.EWS_Config.class"
                 width="1"
                 height="1">
    </applet-desc>
     <update check="background" policy="always"/>
</jnlp>

2 个答案:

答案 0 :(得分:2)

您可以尝试将JNLP文件设置为在浏览器中立即过期,即在下载时设置相应的标题,例如expirescache-controlno-cache编译指示等。你需要几个不同的浏览器。)

答案 1 :(得分:1)

我假设你从某种网络服务器下载jnlp文件?如果是,那么你应该仔细查看链接到jnlp的网站。也许添加像 foobar.jnlp?version = xx.yy.zz 这样的东西可以提供帮助。 ?version = xx.yy.zz 将由服务器作为GET-Parameters处理(因此被文件选择忽略),但缓存时浏览器不会忽略它。

问候