I am working in a such environment, where we have to update client
jar in every 2 months maximum. So, as a solution I am suggesting to use
JNLP by using this approach we do not have to worry that every user is using the latest release or not. As, There are more then 100 clients per department.
But the problem is
JNLP isn't upgrade the new
jar file in the following is the
<?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>
<strong>My working environment:</strong> Tomcat-6.0 server and following tutorial <a href="http://www.mkyong.com/java/java-web-start-jnlp-tutorial-unofficial-guide/" rel="nofollow">here</a>Answer1:
If you download the jnlp <a href="http://jcp.org/aboutJava/communityprocess/mrel/jsr056/index5.html" rel="nofollow">spec</a> and look at chapter 6, there is a whole section about caching: "6 Downloading and Caching of Resources"
You can try to add a version number to your jar file and then use the jnlp jar version attribute.
If you currently don't do that, the spec states the following:<blockquote>
An entry downloaded using the basic download protocol must be located in the cache based on the URL. The time stamp obtained from the HTTP GET request in the Last-Modified header field of the reply should be stored along with the downloaded resource. The time stamp is used to determine if the copy on the server is newer.
The JNLP Client cannot assume that the HTTP GET request will return the same JAR file for each request. The JNLP Client must periodically check the Web server to see if an updated version is available. This check is recommended to be performed before an application is launched, but the exact algorithm used by a JNLP Client depends on the particular implementation. For example, if a JNLP Client is offline, the check is not required to be performed.
The above caching rules also apply to extension descriptors downloaded using the extension download protocol where the version attribute is not specified.</blockquote>