commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rmenon <rmenon...@gmail.com>
Subject Re: Digester 1.8 classloader issue when using tomcat
Date Sat, 03 Jan 2009 22:27:39 GMT



Rahul Akolkar wrote:
> 
> On Sat, Jan 3, 2009 at 3:51 PM, rmenon <rmenon.us@gmail.com> 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?
> <snip/>
> 
> 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).
> 
> 
> Well, from what I understand, at least in tomcat (which is what we use),
> there is a shared/lib
> directory for jars that are common across applications. These jars need
> not be container specific.
> 
> 
> And I am not sure what you mean portability? Could you explain a bit more?
> 
>> 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)?
> <snap/>
> 
> I think you mean duplicating libraries in war files for different web
> apps with similar application dependencies.
> 
> I meant duplicating a jar file that is shared across applications in each
> of the applications's WEB-INF/lib
> directories. I would think that there should be a way to put them in
> shared/lib directory and still be able to use digester to construct them.
> 
> 
>> 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.)
>>
> <snap/>
> 
> I still think you mean adding the same jars to each WEB-INF/lib -- its
> portable and its safe.
> 
> -Rahul
> 
> 
>>
>>
>> Rahul Akolkar wrote:
>>>
>>> On Sat, Jan 3, 2009 at 3:44 PM, rmenon <rmenon.us@gmail.com> 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 <rmenon.us@gmail.com> 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
>>>>>> I
>>>>>> 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: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Digester-1.8-classloader-issue-when-using-tomcat-tp21268177p21270210.html
Sent from the Commons - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message