tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From V D <>
Subject Re: [OT] How to write/use Tomcat's war classloader
Date Mon, 17 Apr 2006 22:53:58 GMT

Thank you for the info.  That settles it for me.

David Smith wrote:
> Oops, meant unpackWars="false"
> David Smith wrote:
>> 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 <> 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,
>>>>>> give some advice on how to write this thing faster?
>>>>>> Thanks,
>>>>>> -vd
>>>>>> |
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message