[英]Java Applet not caching
我遇到了一個我已部署的Java applet的問題,它拒絕緩存在jvm的“粘性”緩存(或瀏覽器)中。 出於某種原因,每次用戶加載此applet所在的頁面時,jvm會從服務器重新下載jar文件,這會導致長時間的延遲。
包含applet的網頁正在通過互聯網訪問,因此根據Sun的Java applet文檔,我使用的是<applet>
標簽,而不是<object>
或<embed>
標簽。
任何幫助調試或識別問題將非常感激。
以下是我正在使用的完整applet標記:
<applet alt="Scanning Applet failed to load" archive="scanning.jar"
code="scanning.scanlet.class" codebase="/java/" codetype="application/java"
height="30" mayscript="True" name="scanlet" width="200">
<param name="domain" value="192.168.12.23" />
<param name="publishName" value="scan_attachment" />
<param name="publishURL" value="http://192.168.12.23/draft/update/52" />
<param name="curURL" value="http://192.168.12.23/draft/edit/52" />
Your browser is unable to process the Java <APPLET> tag needed to display this applet
<br />
One solution would be to download a better web browser like
<a href="http://www.mozilla.com/firefox">Mozilla's Firefox</a>
</applet>
我有同樣的問題,發現需要應用服務器端的技巧。 如果他們的mime類型不正確,似乎沒有緩存jar。 請使用application / java-archive mime類型檢查服務器回復。
我發現的另一個問題與特定的罐子有關。 我的歸檔參數列出了許多jar,但只有少數緩存。 我發現所有罐子都是緩存的特定罐子,所有剩余的罐子都沒有緩存。 在加載applet時,我在其java控制台中按了“5”,並在jar中找不到最后一個緩存的jar:cache:signed條目后發現此消息。 我仍然不知道這個文件有什么問題,但我在存檔參數列表的末尾移動了那個jar。 這個“修復”了這個問題。
我個人通過使用http://java.sun.com/javase/6/docs/technotes/guides/plugin/developer_guide/applet_caching.html中記錄的 cache_archive和cache_version參數解決了緩存問題。
我的cache_version基於實際的文件修改日期,例如
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>
}
這篇官方文章介紹了如何更改APPLET標記以增加緩存:
http://java.sun.com/products/plugin/1.3/docs/appletcaching.html
對我來說,我不得不從Archive標簽中刪除Jar文件,只需將它放在cache_archive參數中,並指定版本,使其不會在最后修改日期重新回到服務器
在我的Firefox中修復了它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.