This solution will not work, probably it was Mansour's unintentional typo. I think he meant to say:

<applet code="MyClass.class" archive="MyArchive.jar?=<?php print date('U') ?>" width=xx height=xx>

This might work, haven't tried it myself, but I do know that does when it comes to caching of images.

Anyway, I recognise the problem of the OP when I was still using classic ASP or PHP (a long time ago ;-) ), but since this is a Java/JSP related issue, the above solution may not make any sense to the people reading this newsgroup.

The recommended way of including embedded objects, like JAR's or Flash movies, has always been a pain because of the way different browsers interpret these things (EMBED or OBJECT... etc..).

The JSP specification has a nice way of including JAR's (<jsp:plugin... />), which tries to determine how the requesting browser likes to include an embedded object. However, you're not allowed to use variables to specify the name of the JAR with this built-in function.

Nowadays, it even becomes harder because of the patent-violation that Microsoft has with EOLAS, regarding the way-of-loading-plug-ins in Internet Explorer. It requires a visitor to click on an embedded object to active it before use.

Microsoft's preferred solution is to load the embedded object through scripting, which indeed solves the problems of loading embedded object in Internet Explorer http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/activating_activex.asp.


(Please note, that I do not endorse Microsoft in ANY way, the policy of my company is that we make sure that our applications work and look the same in IE (Windows), Firefox (Multi-platform), and Konqueror (Linux) at least).

This still doesn't solve the solve the problem of the OP, but there are ways to do this...

My solution back in the days of using Classic ASP or PHP was to generate a JAR with the name it intended to have (i.e. 'C:\internet\www.mydomain.com\securedapplet.jar') in a directory which wasn't accessible by the web browser. When the page that was responsible for delivering the JAR to the browser was requested, that page would create a unique random name for that JAR for that request, and copy the original file to a directory accessible by the webserver (i.e. 'C:\internet\www.mydomain.com\www\applets\mysecuredapplet1234567.jar' and serve that file, for each request. Of course, before each request, it would *try* to delete every other file in that directory before the copy. This worked, because if an existing 'C:\internet\www.mydomain.com\www\applets\uniquename'.jar that existed, but was in use by another request by a random user could not be deleted, so it was skipped but deleted the next time a request was made.

This also meant, that I didn't have to ask my clients to clear their plug-in cache or browser-cache every time I made an update to the JAR.

Now, how do we create a solution for the problem of renaming the JAR during the copy while still using it in the standard JSP solution?

I have a few solutions to this, though I'd rather see that the JSP specification would allow for having variable EL expressions for the JAR and other's in the <jsp:plugin... /> tag.

My solutions are something for tomorrow, or the day after, since it's my birthday today and though I have two days off, I've been slightly celebrating. These few glasses of wine make me become unstable.

I hope I didn't make it too confusing... the proposed solutions shouldn't be too hard. Let me now if anyone's interested and I'll reply to this list soon.


Kind regards,

Stephan van Loendersloot.


I am new to JSP but this issue has nothing to do with tomcat as I have gone through this with apache. The browser keeps a version of the applet. I think you have to clear the java cache to fix this. However a work around, was to put the date and time after the javaclass. for example: <applet code="MyClass.class" archive="myJar.jar?v=theDate">

I am not sure how to automate this in JSP, but that's what I did in PHP, and it works great.

<applet code="MyClass.class" archive="MyClass.class?v=<?php print date('U') ?>" width=xx height=xx>

This will force the browser to obtain the latest version of the code every time. Maybe you can find out how to do the same in JSP.

I hope this helps.





Jose Roberto Torres wrote:

Good day every one.
I am using the following:
*Linux Suse 10.1.
*Tomcat 5.0.28
*JDK 1.5
*MySql database

I am having problems making tomcat show the correct version of my application. I am working with an applet that uses servlets to connect to a MySql database. From the beginning I had no problems with it, but two days ago the tomcat started to display an older version of the applet. I am calling the applet like this "192.168.1.80/prime/servlets" to test it and now is showing the correct applet only in the application server, if i try to access the applet from another computer in the LAN it shows a muuuuchh older version of the applet, I have tried erasing my web browser cache, clearing the java classloader cache (Thank you Antonio Petrelli) and i have erased all the .class files and re-builded them to see if something changed.

I donĀ“t know if Tomcat makes a copy of this files or if there is a way to refresh the applets tomcat shows.

If there is anything else I am missing to make my problem clearer please let me know.

Jose Roberto Torres Sanchez


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to