tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Johnny Kewl" <j...@kewlstuff.co.za>
Subject Re: Redeploy issues loading contents from some .jar at WEB-INF/lib
Date Wed, 14 Nov 2007 22:50:51 GMT

---------------------------------------------------------------------------
HARBOR: http://coolharbor.100free.com/index.htm
Now Tomcat is also a cool pojo application server
---------------------------------------------------------------------------
----- Original Message ----- 
From: "Leonardo Pinho" <leonardo.pinho@gmail.com>
To: <users@tomcat.apache.org>
Sent: Wednesday, November 14, 2007 11:10 PM
Subject: RE: Redeploy issues loading contents from some .jar at WEB-INF/lib


>
> I guess not, because I'm doing the redeploy manually and just after the
> transfer is completed. The autoDeploy feature is off in my tomcat, so I go
> to the Tomcat Manager and invoke the Reload operation for my web app 
> using:
>
> http://<host>:8080/manager/html/reload?path=/<app_name>

Leonardo Pinho wrote:
>> - If I just redeploy, without update the WAR, it works!
>>
>> - If I update the WAR (some servlet code p.ex.) without update common.jar
>> (keep the same jar) and redeploy, it works!
>>
>> - If I update the WAR and update common.jar (different version of the
>> jar)
>> and redeploy, it does NOT work!

Beeeeeeg guess here....
Update (if I remember) means that if it exists, it will undeploy first.
So I have a feeling this application (the offending class) wont undeploy.

It works if tomcat restarted, but not if tomcat running...
I think the application (class) is not letting go...
I think this because even if you change a JAR... if the classloader cannot 
let classes go because something is using it... it will not reload... the 
classloader will simply reuse the one in the classloader... so new on 
disk... does not mean new in classloader, unless that class loader can let 
go... something like that.

So the software somewhere does something like read the digest of the file on 
disk... then it checks that against the loaded class...
bang they are different... I'm thinking a singleton or something has that 
class... and the classloader when told to reload, does not evem look at the 
new one on disk.
How to check that, and how to kill that.... I have no idea, dont know 
Spring. 


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


Mime
View raw message