Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java小程序不缓存_Java_Caching_Applet - Fatal编程技术网

Java小程序不缓存

Java小程序不缓存,java,caching,applet,Java,Caching,Applet,我部署的Java小程序有一个问题,它拒绝缓存在jvm的“粘性”缓存中(或通过浏览器)。出于某种原因,每次用户加载小程序所在的页面时,jvm都会从服务器重新下载jar文件,这会导致长时间延迟 包含小程序的网页是通过互联网访问的,因此根据我的说法,我使用的是这篇官方文章介绍了如何更改小程序标记以增加缓存: 我个人通过使用cache\u archive和cache\u version参数解决了缓存问题,这些参数记录在 我的cache_版本基于实际的文件修改日期,例如 val archive = lib

我部署的Java小程序有一个问题,它拒绝缓存在jvm的“粘性”缓存中(或通过浏览器)。出于某种原因,每次用户加载小程序所在的页面时,jvm都会从服务器重新下载jar文件,这会导致长时间延迟

包含小程序的网页是通过互联网访问的,因此根据我的说法,我使用的是
这篇官方文章介绍了如何更改小程序标记以增加缓存:


我个人通过使用cache\u archive和cache\u version参数解决了缓存问题,这些参数记录在

我的cache_版本基于实际的文件修改日期,例如

val archive = libs.map("/" + _.getPath).mkString (", ")
val version = libs.map(_.getUpdated / 1000 / 20 - 59281420).mkString (", ")
要使用MSIE,它看起来是:

if (msie) {
  cms write <OBJECT
    classid="clsid:CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA"
    codebase="http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab"
    width="100%" height="100%">
    ...
    <PARAM name="cache_archive" value={archive}/>
    <PARAM name="cache_version" value={version}/>
  </OBJECT>
} else {
  cms write <applet ...
    cache_archive={archive} cache_version={version}></applet>
}
if(msie){
cms写入
...
}否则{
cms写入
}

我也遇到了同样的问题,发现了一个需要应用于服务器端的技巧。如果JAR的mime类型不正确,它似乎不会被缓存。请使用application/java archive mime类型检查服务器回复

我发现的另一个问题与特定的jar有关。我的存档参数列出了许多jar,但只有少数jar被缓存。我发现所有的罐子都被缓存到了一个特定的地方,所有剩余的罐子都没有被缓存。
在加载applet时,我在java控制台中按了“5”,发现这个消息就在最后一个缓存的jar:cache:signed条目从jar中丢失之后。我仍然不知道这个文件出了什么问题,但是我把这个jar移到了归档参数列表的末尾。这个“修复”了这个问题。

对于我来说,我必须从归档标签中删除Jar文件,并将其放在cache\u Archive参数中,并指定版本,这样它就不会将上次修改的日期带回到服务器上


在firefox中为我修复了它

Jon,thx用于快速响应,不幸的是,我一直在上下查看该官方文档。根据它的说法,因为我只是在使用归档属性,所以即使没有新的cache_*属性,我也应该得到某种回退浏览器级缓存,对吗?无论如何,在将cache_*属性添加到applet标记后,applet仍然拒绝被jvm缓存:…相同的参数,等等。。这个“回退浏览器级缓存”仍然是由JVM完成的,通常是问题所在。ArtemGr,thx获取详细响应。我们的所有用户都通过Firefox访问该网站,因此无法使用。我已尝试更改applet标记以包含cache_*属性(_archive、_option、&_version),但每次浏览相关页面时,applet仍在重新下载。这是我修改过的小程序标记:…相同的参数,等等。。它是只发生在你身上还是发生在网站的所有(部分)用户身上?如果是前者,那么可能是由于某种原因,您计算机上的Java插件无法缓存文件?在Windows上,Java插件有一个在浏览器缓存中缓存的选项,在这种情况下,浏览器缓存限制可能适用(顺便说一句,您可以通过控制面板查看缓存的内容);在UNIX上~/.java/deployment/文件夹用于缓存,~/.java/应该是可写的,等等。使用该站点的每个人都会遇到这种情况:[.在Windows机器上,我通过Java控制面板查看了一下,在“临时Internet文件->设置”下只能找到“缓存”设置。不过这些设置看起来都不错。我还查看了“临时Internet文件->视图”下的设置,以验证缓存中不存在有问题的.jar文件:[我已经通过Java控制面板->高级->调试启用了日志记录和跟踪,并且我得到了以下消息的多次迭代:网络:未找到缓存项[url:192.168.12.23/Java/scanning.jar,版本:1.0]我一直在检查一个基于jar的小程序的工作示例:。对于这个工作小程序,java控制台打印出:网络:下载资源:内容长度:60507内容编码:null…网络:将URL写入文件F:\Documents and Settings\Administrator.STFUNATOR\Application Data\Sun\java\Deployment\cache\6.0\29\1055419d-13a80961-tempI已经通过Java控制面板->高级->调试启用了日志记录和跟踪,并且我收到了以下消息的多次迭代:网络:找不到缓存项[url:,版本:1.0]一般堆栈溢出问题:没有办法像最初的问题那样很好地格式化“注释”吗?
if (msie) {
  cms write <OBJECT
    classid="clsid:CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA"
    codebase="http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab"
    width="100%" height="100%">
    ...
    <PARAM name="cache_archive" value={archive}/>
    <PARAM name="cache_version" value={version}/>
  </OBJECT>
} else {
  cms write <applet ...
    cache_archive={archive} cache_version={version}></applet>
}