tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From V D <st946...@drexel.edu>
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 <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


Mime
View raw message