tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Smith <>
Subject Re: [OT] How to write/use Tomcat's war classloader
Date Mon, 17 Apr 2006 12:35:43 GMT
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, or
>>>>> give some advice on how to write this thing faster?
>>>>> Thanks,
>>>>> -vd
>>>>> |

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

View raw message