commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rahul Akolkar" <>
Subject Re: Digester 1.8 classloader issue when using tomcat
Date Sat, 03 Jan 2009 21:08:02 GMT
On Sat, Jan 3, 2009 at 3:51 PM, rmenon <> wrote:
> Well,
> Can you please elaborate a bit more? My question is why should we reload the
> same classes multiple times for a jar file that is shared by multiple web
> apps?

Generally you want your apps to be self-contained. The servlet
specification talks about the web app and its directory structure,
shared stuff is often container specific (I did mention portability).

> Also, if I do not use digester, then this is not an issue - so what
> are people who use digester doing (apart from duplicating war files)?

I think you mean duplicating libraries in war files for different web
apps with similar application dependencies.

> I do
> not like the idea of duplicating same war files for each web app - so is
> there a good reason to do that (apart from being a workaround for problems
> with digester.)

I still think you mean adding the same jars to each WEB-INF/lib -- its
portable and its safe.


> Rahul Akolkar wrote:
>> On Sat, Jan 3, 2009 at 3:44 PM, rmenon <> wrote:
>>> Can you please elaborate? Are you suggesting that I should just package
>>> all
>>> three jar files in WEB-INF/lib?
>> <snip/>
>> If they are needed by the said web app, yes.
>> -Rahul
>>> Rahul Akolkar wrote:
>>>> On Sat, Jan 3, 2009 at 2:14 PM, rmenon <> wrote:
>>>>> Hi
>>>>> I have three jar files: common, webapp-common, my-webapp.jar.
>>>>> common- can be used by non web apps
>>>>> webapp-common - common stuff shared by web apps.
>>>>> my-webapp.jar - a particular web app.
>>>>>  I am using digester to build my classes for the app my-webapp.jar. In
>>>>> the
>>>>> digester rules, I have classes that are in all three jar files. Now,
>>>>> ideally
>>>>> speaking, I should be able to put the webapp-cmmon and common jar files
>>>>> in
>>>>> the shared/lib and the my-webapp.jar in WEB-INF/lib. However, that
>>>>> results
>>>>> in the digester failing with "NoClassDefFoundException". The problem
>>>>> goes
>>>>> away if we put all three jars in the WEB-INF/lib since the digester
>>>>> class
>>>>> loader can see those classes. However, the common jar is already in the
>>>>> shared/lib being used by other apps. I added some new "common" stuff
>>>>> for
>>>>> the
>>>>> my-webapp.jar and hence running into this issue.
>>>>> My latest thinking is to separate out the portion of the classes being
>>>>> used
>>>>> by the my-webapp.jar from the common jar file into its own jar. Then
>>>>> can
>>>>> bundle the webapp-common ahd my-webapp.jar in to the WEBINF/lib and
>>>>> retain
>>>>> the common jar in the shared/lib. Is there a better approach? What is
>>>>> the
>>>>> best practice in this scenario. Does someone have an idea of overhead
>>>>> in
>>>>> terms of performance etc if we "duplicate" jar files in each app
>>>>> instead
>>>>> of
>>>>> sharing them in common/lib? What I do not like about this issue is that
>>>>> I
>>>>> think this issue would not be there if I was creating objects without
>>>>> using
>>>>> digester - so a way to use the approach (where I can access the common
>>>>> classes from digester) would be really ideal in my opinion.
>>>>> I did search the google and also this forum - I note that someone
>>>>> suggested
>>>>> to always bundle each jar files within the web app itself separately.
>>>>> What
>>>>> is the rationale for that?
>>>> <snip/>
>>>> Portability, potential trouble with statics etc. Also, digester itself
>>>> (and beanutils in particular) should never be shared.
>>>> -Rahul

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

View raw message