You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by Kevin Steppe <ks...@pacbell.net> on 2002/02/28 21:01:43 UTC

Re: [The plot continues] org/apache/log4j/Logger NoClassDefFoundError withversion 1.1.3

Ok, I'll wade in on this one a bit:

A) Have you tried the Cactus mailing list?  This seems intimately tied to
Cactus.
B) Note that if Cactus can not load the PropertyConfigurator class it will
pretend to be fine, but in fact do nothing (this seems like very very dangerous
behvior in logging to me -- "Hey I can't actually do any logging; instead I'll
ignore it and not tell you!"  So my interpretation of your trials:
    2/ As you said, log4j.jar not found, Cactus does nothing.
    3/ As you said, log4j.jar found and Cactus bombs out mysteriously
    4/ Here I think Cactus is not finding log4j.jar and so it continues.  Are
you getting a log file, statements, etc from this case?  If not case 4 is the
same as case 2.

Some suggestions:
A) try Cactus mailing list
B) Find any other log4j.jar on the system and remove it.  Try running everything
(including WL) except your Cactus app and see if something fails.  Perhaps there
is an unrelated log4j instance used by a different app that's fouling up the VM
somehow.
C) recompile (again) Cactus using log4j 1.1.3, rebuild your ear, shutdown and
restart WL, etc etc
D) Send me the full stack trace when it bombs.

Vincent Massol wrote:

> Following the thread "org/apache/log4j/Logger NoClassDefFoundError with
> version 1.1.3" here are my findings (and more questions) :
>
> 1/ I am using Log4j in a WAR application (inside an EAR) in WL 6.1 SP2
> 2/ I tested the following structure :
>
> myear.ear
>   |_ mywar.war
>     |_ WEB-INF/lib
>       |_ cactus.jar
>     |_ WEB-INF/classes
>       |_ classes called by cactus.jar
>
> This worked fine (there was no log4j.jar and cactus does not try to log
> if log4j is not in the classpath).
>
> 3/ Then I had the following structure (which is the structure I was
> having problem with) :
>
> myear.ear
>   |_ META-INF
>     |_ manifest.mf (contains a CLASS-PATH: log4j.jar)
>   |_ log4j.jar (VERSION 1.1.3 !!)
>   |_ mywar.war
>     |_ WEB-INF/lib
>       |_ cactus.jar
>     |_ WEB-INF/classes
>       |_ classes called by cactus.jar
>
> This failed with the error "org/apache/log4j/Logger"
> NoClassDefFoundError. This means that :
> a/ cactus was able to "see" log4j.jar from its classloader
> b/ the only log4j.jar file it could see was the one under myear.ear and
> thus in version 1.1.3 !
>
> 4/ Then I tested with the following structure :
>
> myear.ear
>   |_ mywar.war
>     |_ WEB-INF/lib
>       |_ cactus.jar
>       |_ log4j.jar (VERSION 1.1.3 !!)
>     |_ WEB-INF/classes
>       |_ classes called by cactus.jar
>
> This worked fine ! This proves that Cactus is NOT using the Logger
> class.
>
> Question : Where does the "org/apache/log4j/Logger" NoClassDefFoundError
> comes from ?
>
> Note: It cannot come from a log4j.jar that would be in the system
> classpath because in step 2/ the cactus.jar would have "seen" log4j.jar
> (the webapp CL is a child of the system CL).
>
> What am I doing wrong ? :-)
>
> Thanks
> -Vincent
>
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: [The plot continues] org/apache/log4j/Logger NoClassDefFoundError withversion 1.1.3

Posted by T Master <tm...@iknowledge.com>.
Do you have a version of Cactus previous to when the problems occurred?
Note any differences?   Just a thought!

ps, i laughed at the grin!

----- Original Message -----
From: "Vincent Massol" <vm...@octo.com>
To: "'Log4J Users List'" <lo...@jakarta.apache.org>; <ks...@pacbell.net>
Sent: Thursday, February 28, 2002 1:43 PM
Subject: RE: [The plot continues] org/apache/log4j/Logger NoClassDefFoundError
withversion 1.1.3


> Kevin,
>
> First, thanks for your help.
>
> > -----Original Message-----
> > From: Kevin Steppe [mailto:ksteppe@pacbell.net]
> > Sent: 28 February 2002 20:02
> > To: Log4J Users List
> > Subject: Re: [The plot continues] org/apache/log4j/Logger
> > NoClassDefFoundError withversion 1.1.3
> >
> > Ok, I'll wade in on this one a bit:
> >
> > A) Have you tried the Cactus mailing list?  This seems intimately tied
> to
> > Cactus.
>
> <huge grin/>
>
> I am the creator of Cactus (I would answer to myself on the list if I
> knew the answer, though ;-) ). What I am debugging is Cactus itself !
>
> That said, you are right, it is linked to Cactus :-)
>
> > B) Note that if Cactus can not load the PropertyConfigurator class it
> will
> > pretend to be fine, but in fact do nothing (this seems like very very
> > dangerous
> > behvior in logging to me -- "Hey I can't actually do any logging;
> instead
> > I'll
> > ignore it and not tell you!"
>
> I don't agree. This logging is purely internal to Cactus and has nothing
> to do with application logging. And I wanted to make it transparent for
> the user.
>
> That said, I am changing this behaviour. The new one will be : no cactus
> logging unless you tell it so.
>
> > So my interpretation of your trials:
> >     2/ As you said, log4j.jar not found, Cactus does nothing.
>
> Yes, I know, that's why I removed my log4j.jar ! To prove that no other
> log4 classes were in the classpath anywhere ! (Please reread my email
> slowly).
>
> >     3/ As you said, log4j.jar found and Cactus bombs out mysteriously
>
> yep, that's what I'd like to know ... :-)
>
> >     4/ Here I think Cactus is not finding log4j.jar and so it
> continues.
> > Are
> > you getting a log file, statements, etc from this case?  If not case 4
> is
> > the
> > same as case 2.
>
> Yep, it is the same as case 2. Except it proves that Cactus is not using
> the Logger anywhere in its code (as the log4j.jar is version 1.1.3 and
> we know from case 2/ that no other log4j classes are present in any
> other classloaders).
>
> >
> > Some suggestions:
> > A) try Cactus mailing list
>
> see above
>
> > B) Find any other log4j.jar on the system and remove it.  Try running
> > everything
> > (including WL) except your Cactus app and see if something fails.
> Perhaps
> > there
> > is an unrelated log4j instance used by a different app that's fouling
> up
> > the VM
> > somehow.
>
> I'd like that but it seems that no, there is no other log4j anywhere
> else. See above. BTW if I remove Cactus, I have nothing left ... (Cactus
> is the application I am testing using itself).
>
> > C) recompile (again) Cactus using log4j 1.1.3, rebuild your ear,
> shutdown
> > and
> > restart WL, etc etc
>
> done that thousands of time.
>
> > D) Send me the full stack trace when it bombs.
> >
>
> will do.
>
> Thanks
> -Vincent
>
>
> > Vincent Massol wrote:
> >
> > > Following the thread "org/apache/log4j/Logger NoClassDefFoundError
> with
> > > version 1.1.3" here are my findings (and more questions) :
> > >
> > > 1/ I am using Log4j in a WAR application (inside an EAR) in WL 6.1
> SP2
> > > 2/ I tested the following structure :
> > >
> > > myear.ear
> > >   |_ mywar.war
> > >     |_ WEB-INF/lib
> > >       |_ cactus.jar
> > >     |_ WEB-INF/classes
> > >       |_ classes called by cactus.jar
> > >
> > > This worked fine (there was no log4j.jar and cactus does not try to
> log
> > > if log4j is not in the classpath).
> > >
> > > 3/ Then I had the following structure (which is the structure I was
> > > having problem with) :
> > >
> > > myear.ear
> > >   |_ META-INF
> > >     |_ manifest.mf (contains a CLASS-PATH: log4j.jar)
> > >   |_ log4j.jar (VERSION 1.1.3 !!)
> > >   |_ mywar.war
> > >     |_ WEB-INF/lib
> > >       |_ cactus.jar
> > >     |_ WEB-INF/classes
> > >       |_ classes called by cactus.jar
> > >
> > > This failed with the error "org/apache/log4j/Logger"
> > > NoClassDefFoundError. This means that :
> > > a/ cactus was able to "see" log4j.jar from its classloader
> > > b/ the only log4j.jar file it could see was the one under myear.ear
> and
> > > thus in version 1.1.3 !
> > >
> > > 4/ Then I tested with the following structure :
> > >
> > > myear.ear
> > >   |_ mywar.war
> > >     |_ WEB-INF/lib
> > >       |_ cactus.jar
> > >       |_ log4j.jar (VERSION 1.1.3 !!)
> > >     |_ WEB-INF/classes
> > >       |_ classes called by cactus.jar
> > >
> > > This worked fine ! This proves that Cactus is NOT using the Logger
> > > class.
> > >
> > > Question : Where does the "org/apache/log4j/Logger"
> NoClassDefFoundError
> > > comes from ?
> > >
> > > Note: It cannot come from a log4j.jar that would be in the system
> > > classpath because in step 2/ the cactus.jar would have "seen"
> log4j.jar
> > > (the webapp CL is a child of the system CL).
> > >
> > > What am I doing wrong ? :-)
> > >
> > > Thanks
> > > -Vincent
> > >
> > > --
> > > To unsubscribe, e-mail:   <mailto:log4j-user-
> > unsubscribe@jakarta.apache.org>
> > > For additional commands, e-mail: <mailto:log4j-user-
> > help@jakarta.apache.org>
> >
> >
> > --
> > To unsubscribe, e-mail:   <mailto:log4j-user-
> > unsubscribe@jakarta.apache.org>
> > For additional commands, e-mail: <mailto:log4j-user-
> > help@jakarta.apache.org>
> >
>
>
>
>
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>
>


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


RE: [The plot continues] org/apache/log4j/Logger NoClassDefFoundError withversion 1.1.3

Posted by Vincent Massol <vm...@octo.com>.
Kevin,

First, thanks for your help.

> -----Original Message-----
> From: Kevin Steppe [mailto:ksteppe@pacbell.net]
> Sent: 28 February 2002 20:02
> To: Log4J Users List
> Subject: Re: [The plot continues] org/apache/log4j/Logger
> NoClassDefFoundError withversion 1.1.3
> 
> Ok, I'll wade in on this one a bit:
> 
> A) Have you tried the Cactus mailing list?  This seems intimately tied
to
> Cactus.

<huge grin/>

I am the creator of Cactus (I would answer to myself on the list if I
knew the answer, though ;-) ). What I am debugging is Cactus itself !

That said, you are right, it is linked to Cactus :-)

> B) Note that if Cactus can not load the PropertyConfigurator class it
will
> pretend to be fine, but in fact do nothing (this seems like very very
> dangerous
> behvior in logging to me -- "Hey I can't actually do any logging;
instead
> I'll
> ignore it and not tell you!"  

I don't agree. This logging is purely internal to Cactus and has nothing
to do with application logging. And I wanted to make it transparent for
the user.

That said, I am changing this behaviour. The new one will be : no cactus
logging unless you tell it so.

> So my interpretation of your trials:
>     2/ As you said, log4j.jar not found, Cactus does nothing.

Yes, I know, that's why I removed my log4j.jar ! To prove that no other
log4 classes were in the classpath anywhere ! (Please reread my email
slowly).

>     3/ As you said, log4j.jar found and Cactus bombs out mysteriously

yep, that's what I'd like to know ... :-)

>     4/ Here I think Cactus is not finding log4j.jar and so it
continues.
> Are
> you getting a log file, statements, etc from this case?  If not case 4
is
> the
> same as case 2.

Yep, it is the same as case 2. Except it proves that Cactus is not using
the Logger anywhere in its code (as the log4j.jar is version 1.1.3 and
we know from case 2/ that no other log4j classes are present in any
other classloaders).

> 
> Some suggestions:
> A) try Cactus mailing list

see above

> B) Find any other log4j.jar on the system and remove it.  Try running
> everything
> (including WL) except your Cactus app and see if something fails.
Perhaps
> there
> is an unrelated log4j instance used by a different app that's fouling
up
> the VM
> somehow.

I'd like that but it seems that no, there is no other log4j anywhere
else. See above. BTW if I remove Cactus, I have nothing left ... (Cactus
is the application I am testing using itself).

> C) recompile (again) Cactus using log4j 1.1.3, rebuild your ear,
shutdown
> and
> restart WL, etc etc

done that thousands of time.

> D) Send me the full stack trace when it bombs.
> 

will do.

Thanks
-Vincent


> Vincent Massol wrote:
> 
> > Following the thread "org/apache/log4j/Logger NoClassDefFoundError
with
> > version 1.1.3" here are my findings (and more questions) :
> >
> > 1/ I am using Log4j in a WAR application (inside an EAR) in WL 6.1
SP2
> > 2/ I tested the following structure :
> >
> > myear.ear
> >   |_ mywar.war
> >     |_ WEB-INF/lib
> >       |_ cactus.jar
> >     |_ WEB-INF/classes
> >       |_ classes called by cactus.jar
> >
> > This worked fine (there was no log4j.jar and cactus does not try to
log
> > if log4j is not in the classpath).
> >
> > 3/ Then I had the following structure (which is the structure I was
> > having problem with) :
> >
> > myear.ear
> >   |_ META-INF
> >     |_ manifest.mf (contains a CLASS-PATH: log4j.jar)
> >   |_ log4j.jar (VERSION 1.1.3 !!)
> >   |_ mywar.war
> >     |_ WEB-INF/lib
> >       |_ cactus.jar
> >     |_ WEB-INF/classes
> >       |_ classes called by cactus.jar
> >
> > This failed with the error "org/apache/log4j/Logger"
> > NoClassDefFoundError. This means that :
> > a/ cactus was able to "see" log4j.jar from its classloader
> > b/ the only log4j.jar file it could see was the one under myear.ear
and
> > thus in version 1.1.3 !
> >
> > 4/ Then I tested with the following structure :
> >
> > myear.ear
> >   |_ mywar.war
> >     |_ WEB-INF/lib
> >       |_ cactus.jar
> >       |_ log4j.jar (VERSION 1.1.3 !!)
> >     |_ WEB-INF/classes
> >       |_ classes called by cactus.jar
> >
> > This worked fine ! This proves that Cactus is NOT using the Logger
> > class.
> >
> > Question : Where does the "org/apache/log4j/Logger"
NoClassDefFoundError
> > comes from ?
> >
> > Note: It cannot come from a log4j.jar that would be in the system
> > classpath because in step 2/ the cactus.jar would have "seen"
log4j.jar
> > (the webapp CL is a child of the system CL).
> >
> > What am I doing wrong ? :-)
> >
> > Thanks
> > -Vincent
> >
> > --
> > To unsubscribe, e-mail:   <mailto:log4j-user-
> unsubscribe@jakarta.apache.org>
> > For additional commands, e-mail: <mailto:log4j-user-
> help@jakarta.apache.org>
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:log4j-user-
> unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: <mailto:log4j-user-
> help@jakarta.apache.org>
> 




--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>