tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Smith <d...@cornell.edu>
Subject Re: [OT] How to write/use Tomcat's war classloader
Date Mon, 17 Apr 2006 12:32:18 GMT
Tomcat does unpack war files before starting the context. That's because 
of performance issues if it really tried to run the app from an archive. 
Typically if unpackWars="true", tomcat will unpack to the work directory 
instead of the webapps dir.

 --David

V D wrote:
> Thank you for your interest.  The application starts very slowly with 
> the war and my classloader (this is a standard app, not webapp).  The 
> war also has a webapp in it.  This has nothing to do with the 
> application logic.  It's the leading time to load the classes.  It 
> takes about 2 or 3 minutes.  The same JVM 1.5.0 runs Tomcat (5.5.12) 
> would response to request much quicker (about 10 seconds) after the 
> 1st request.  If I run the war file unpacked and using standard 
> classloader, it's a couple of seconds before things run.  However, 
> using our own class loader with the packed war (which searches all 
> libraries in the lib and classes in the classes directory) it takes 
> along time described above.
>
> My question is about how Tomcat does this in the unpacked war 
> scenario.  I couldn't find the Tomcat loader that does this.  I 
> suspect it unpacked it first, but this is a wild speculation.
>
>
> P Y wrote:
>> maybe you could give a bit more context to interpret "very slow" or 
>> "quickly".
>> like what version of tc and jvm are you using ... etc
>>
>>
>> On 4/12/06, V D <st946tbf@drexel.edu> wrote:
>>  
>>> Anyone have an idea about this?
>>>
>>> V D wrote:
>>>    
>>>> We have a sizable war file (|unpacked|) that needs to be run in
>>>> certain way outside of Tomcat.  To do this, we created a classloader
>>>> which works Ok except that it's very slow (using JarFile).  I know
>>>> that when deploy apps in Tomcat, I can specify it to not to unpack
>>>> (|unpackWAR = "false").  However, Tomcat load and run the apps
>>>> quickly. I looked into Tomcat source, the org.apache.catalina.loader
>>>> package and could not find anything like that.  I see
>>>> WebappClassLoader, but it seems to load from an unpacked war, not
>>>> packed war.  Does Tomcat actually unpack the war before loading the
>>>> app?  If not, could someone point me to the right place to look, or
>>>> give some advice on how to write this thing faster?
>>>>
>>>> Thanks,
>>>>
>>>> -vd
>>>> |
>>>>
>>>>       
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>>
>>>     
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>   
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@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