I'm having a problem with a Java applet I've deployed that is refusing to be cached in the jvm's "sticky" cache (or by the browser). For some reason every time a user loads the page this applet is on, the jvm re-downloads the jar file from the server which causes a long delay.
The webpage containing the applet is being accessed via the internet, so according to Sun's Java applet documentation I'm using an <applet>
tag rather than an <object>
or <embed>
tag.
Any help debugging or identifying the problem would be much appreciated.
Below is the full applet tag I'm using:
<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>
For me I had to remove the Jar files from the Archive tag and just have it in the cache_archive parameter, and specify the versions that way it doesn't piggy back to the server for last modified date
Fixed it in firefox for me
This official article describes how you can change your APPLET tag to increase caching:
http://java.sun.com/products/plugin/1.3/docs/appletcaching.html
I had the very same problem and found a trick that need to be applied server side. It seems that jars aren't cached if their mime type is incorrect. Please check your server reply using the application/java-archive mime type.
Another problem I found is related to a specific jar. My archive parameter was listing many jars, but only a few were cached. I found that all jars upto a specific one where cached, all remaining jars weren't cached at all. While loading applet, I pressed "5" in its java console and found this message just after the last cached jar: cache: signed entry missing from jar . I still don't know what is wrong with this file, but I moved that jar at the end of the archive parameter list. This "fixed" the problem.
Personally I solved the caching issues by using cache_archive and cache_version parameters docummented at http://java.sun.com/javase/6/docs/technotes/guides/plugin/developer_guide/applet_caching.html
My cache_version is based on the actual file modification date, e.g.
and to work with MSIE it looks as: