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:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to