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 Jon Friis <jo...@gavia.dk> on 2007/10/25 18:01:22 UTC

Log4j and commons-logging unable to locate each other

Hello

I have a problem with log4j and commons-logging which i really hope anybody 
can help me with. 

Setup:
Windows 2000, Apache Tomcat 6.0, JRE 1.6.0_02, log4j-1.2.15, commons-logging 
annd i am using eclipse 3.3.0

Since i have multiple Web services on the same Tomcat server i have been 
putting log4j.jar in WEB-INF/lib and log4j.properties in WEB-INF/classes.

My problem is some kind of class-loading problem where log4j and 
commons-logging won't find each other.

2 scenarios:

1) commons-logging.jar and log4j.jar are both put in WEB-INF/lib for my 
webapp.

2) commons-logging.jar is put in tomcat 6.0/lib (Common classloader according 
to tomcat 6.0 doc) and log4j.jar in WEB-INF/lib.

The stacktraces of both scenarios are given below.

Question is: Why can't they see each other and how can i solve the problem ?

Can it really be so that i have to wrap the log4j class (as describe in the 
log4j book) and can someone explain why and will it help ?

Any feed back or solution hints are really appreciated :-)

Thx
Jon Friis

Scenario 1)
--------------------------------------------------

25-10-2007 16:47:24 org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /FAS threw load() exception
java.lang.NoClassDefFoundError: org.apache.commons.logging.LogFactory
        at 
org.apache.axis.components.logger.LogFactory.class$(LogFactory.java:45)
        at 
org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41)
        at 
org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33)
        at 
org.apache.axis.transport.http.AxisServlet.<clinit>(AxisServlet.java:75)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at 
org.apache.axis.transport.http.AxisServletBase.class$(AxisServletBase.java:59)
        at 
org.apache.axis.transport.http.AxisServletBase.<clinit>(AxisServletBase.java:58)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at java.lang.Class.newInstance0(Class.java:355)
        at java.lang.Class.newInstance(Class.java:308)
        at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104)
        at 
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
        at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)
        at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)
        at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at 
org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
25-10-2007 16:47:25 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080

Scenario 2)
--------------------------------------------------

java.lang.NoClassDefFoundError: org/apache/log4j/Category
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
        at java.lang.Class.getConstructor0(Class.java:2699)
        at java.lang.Class.getConstructor(Class.java:1657)
        at 
org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:410)
        at 
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
        at 
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:370)
        at 
org.apache.axis.components.logger.LogFactory.getLog(LogFactory.java:37)
        at 
org.apache.axis.transport.http.AxisServlet.<clinit>(AxisServlet.java:75)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at 
org.apache.axis.transport.http.AxisServletBase.class$(AxisServletBase.java:59)
        at 
org.apache.axis.transport.http.AxisServletBase.<clinit>(AxisServletBase.java:58)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at java.lang.Class.newInstance0(Class.java:355)
        at java.lang.Class.newInstance(Class.java:308)
        at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104)
        at 
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
        at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)
        at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)
        at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at 
org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
25-10-2007 17:02:14 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080

-- 
Jon Friis
IT-Consultant & Owner

Gavia Technologies ApS
Omøgade 8, 2. sal
2100 Kbh. Ø

M: +45 23820053
E: jon_at_gavia.dk
W: www.gavia.dk

Join my network at 
http://www.linkedin.com/in/jonfriis


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


Re: Log4j and commons-logging unable to locate each other

Posted by Jon Friis <jo...@gavia.dk>.
Thanks Jake

I have commented some of your suggestions below.

Fredag 26 oktober 2007 06:36 skrev Jacob Kjome:
> Jon Friis wrote:
> > Hello
> >
> > I have a problem with log4j and commons-logging which i really hope
> > anybody can help me with.
> >
> > Setup:
> > Windows 2000, Apache Tomcat 6.0, JRE 1.6.0_02, log4j-1.2.15,
> > commons-logging annd i am using eclipse 3.3.0
> >
> > Since i have multiple Web services on the same Tomcat server i have been
> > putting log4j.jar in WEB-INF/lib and log4j.properties in WEB-INF/classes.
>
> Note that this presumes child-first classloading, and that may not be
> the case if you are running it from Eclipse.  If you run Tomcat
> Standalone, you will have child-first for sure.  If you don't have
> log4j.jar anywhere in a parent classloader, this is less of an issue,
> but it still may not find your log4j.properties file if one exists in a
> parent classloader without using child-first classloading.  Even in the
> case where you have child-first, but have log4j.xml in a parent
> classloader, since log4j.xml is used in preference to log4j.properties,
> log4j.xml will get used instead.  Sorry to get a little off track.  More
> below...
>
> > My problem is some kind of class-loading problem where log4j and
> > commons-logging won't find each other.
> >
> > 2 scenarios:
> >
> > 1) commons-logging.jar and log4j.jar are both put in WEB-INF/lib for my
> > webapp.
>
> If, indeed, parent-first, rather than child-first, classloading is being
> done, then this may not work if commons-logging exists in a parent
> classloader.  It will not see log4j.jar in a child classloader.
>
> > 2) commons-logging.jar is put in tomcat 6.0/lib (Common classloader
> > according to tomcat 6.0 doc) and log4j.jar in WEB-INF/lib.
>
> Can you think of a way where commons-logging would be able to find
> log4j.jar in this scenario?  Classloaders look up, not down.  If you put
> log4j.jar in WEB-INF/lib and have libraries that depend on
> commons-logging, then you must also put commons-logging.jar alongside
> log4j.jar.  Of course, you already tried that above.  Hmmm....

I think i came to same conclusion my self, but when your desperate you'll try 
anything.

>
> > The stacktraces of both scenarios are given below.
> >
> > Question is: Why can't they see each other and how can i solve the
> > problem ?
> >
> > Can it really be so that i have to wrap the log4j class (as describe in
> > the log4j book) and can someone explain why and will it help ?
> >
> > Any feed back or solution hints are really appreciated :-)
>
> Try this.  Put log4j.jar and commons-logging.jar (make sure it's not
> commons-logging-api.jar) in Tomcat's "lib" directory.  For per-app
> logging, you'll also need either a repository selector (search the list
> for info) or child-first classloading, plus log4j.jar and
> commons-logging.jar in WEB-INF/lib (in addition to having them in
> Tomcat's "lib" directory).

So my conclusion is that when i run tomcat standalone on our test server 
everything works perfect as describe in 1)

But in my development environment eclipse is changing the class-loader 
strategy or what ? (looks like it forces tomcat to do parent-first 
classloading instead of child first). Isn't this a bug in Eclispe ? i dont 
feel very happy about my develpoment tomcat isn't working in the same way as 
my test & production server. Should this be bugged to eclipse ?

Thanks again Jake for your good suggestions and most of all for explaining to 
me why my setup didn't work. Now i understand the problem and have solved the 
problem more pragmatic.

Since my test & production server is using child-first classloading i will 
stick to this. I my develoment i have the possibility to put all my JAR's in 
common lib - and this solves the problem in development. And after deploying 
my WAR file on test server i run a script to distributed my JAR dependecies 
right on the server. 

So now everything works as it should in test & prodcution, and i development 
the setup is a bit changed.

Thx
Jon Friis

-- 
Jon Friis
IT-Consultant & Owner

Gavia Technologies ApS
Omøgade 8, 2. sal
2100 Kbh. Ø

M: +45 23820053
E: jon@gavia.dk
W: www.gavia.dk

Join my network at 
http://www.linkedin.com/in/jonfriis

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


Re: Log4j and commons-logging unable to locate each other

Posted by Jacob Kjome <ho...@visi.com>.
Jon Friis wrote:
> Hello
> 
> I have a problem with log4j and commons-logging which i really hope anybody 
> can help me with. 
> 
> Setup:
> Windows 2000, Apache Tomcat 6.0, JRE 1.6.0_02, log4j-1.2.15, commons-logging 
> annd i am using eclipse 3.3.0
> 
> Since i have multiple Web services on the same Tomcat server i have been 
> putting log4j.jar in WEB-INF/lib and log4j.properties in WEB-INF/classes.
> 

Note that this presumes child-first classloading, and that may not be 
the case if you are running it from Eclipse.  If you run Tomcat 
Standalone, you will have child-first for sure.  If you don't have 
log4j.jar anywhere in a parent classloader, this is less of an issue, 
but it still may not find your log4j.properties file if one exists in a 
parent classloader without using child-first classloading.  Even in the 
case where you have child-first, but have log4j.xml in a parent 
classloader, since log4j.xml is used in preference to log4j.properties, 
log4j.xml will get used instead.  Sorry to get a little off track.  More 
below...

> My problem is some kind of class-loading problem where log4j and 
> commons-logging won't find each other.
> 
> 2 scenarios:
> 
> 1) commons-logging.jar and log4j.jar are both put in WEB-INF/lib for my 
> webapp.
> 

If, indeed, parent-first, rather than child-first, classloading is being 
done, then this may not work if commons-logging exists in a parent 
classloader.  It will not see log4j.jar in a child classloader.

> 2) commons-logging.jar is put in tomcat 6.0/lib (Common classloader according 
> to tomcat 6.0 doc) and log4j.jar in WEB-INF/lib.
> 

Can you think of a way where commons-logging would be able to find 
log4j.jar in this scenario?  Classloaders look up, not down.  If you put 
log4j.jar in WEB-INF/lib and have libraries that depend on 
commons-logging, then you must also put commons-logging.jar alongside 
log4j.jar.  Of course, you already tried that above.  Hmmm....

> The stacktraces of both scenarios are given below.
> 
> Question is: Why can't they see each other and how can i solve the problem ?
> 
> Can it really be so that i have to wrap the log4j class (as describe in the 
> log4j book) and can someone explain why and will it help ?
> 
> Any feed back or solution hints are really appreciated :-)
> 

Try this.  Put log4j.jar and commons-logging.jar (make sure it's not 
commons-logging-api.jar) in Tomcat's "lib" directory.  For per-app 
logging, you'll also need either a repository selector (search the list 
for info) or child-first classloading, plus log4j.jar and 
commons-logging.jar in WEB-INF/lib (in addition to having them in 
Tomcat's "lib" directory).

And see Tomcat's logging doc to see how to enable Log4j logging for 
Tomcat's own logging, instead of having to configure JUL...

http://tomcat.apache.org/tomcat-6.0-doc/logging.html
http://tomcat.apache.org/tomcat-6.0-doc/extras.html

Jake

> Thx
> Jon Friis
> 
> Scenario 1)
> --------------------------------------------------
> 
> 25-10-2007 16:47:24 org.apache.catalina.core.StandardContext loadOnStartup
> SEVERE: Servlet /FAS threw load() exception
> java.lang.NoClassDefFoundError: org.apache.commons.logging.LogFactory
>         at 
> org.apache.axis.components.logger.LogFactory.class$(LogFactory.java:45)
>         at 
> org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at 
> org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41)
>         at 
> org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33)
>         at 
> org.apache.axis.transport.http.AxisServlet.<clinit>(AxisServlet.java:75)
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Class.java:169)
>         at 
> org.apache.axis.transport.http.AxisServletBase.class$(AxisServletBase.java:59)
>         at 
> org.apache.axis.transport.http.AxisServletBase.<clinit>(AxisServletBase.java:58)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method)
>         at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>         at java.lang.Class.newInstance0(Class.java:355)
>         at java.lang.Class.newInstance(Class.java:308)
>         at 
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104)
>         at 
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
>         at 
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)
>         at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>         at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>         at 
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
>         at 
> org.apache.catalina.core.StandardService.start(StandardService.java:516)
>         at 
> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
>         at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
>         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
> 25-10-2007 16:47:25 org.apache.coyote.http11.Http11Protocol start
> INFO: Starting Coyote HTTP/1.1 on http-8080
> 
> Scenario 2)
> --------------------------------------------------
> 
> java.lang.NoClassDefFoundError: org/apache/log4j/Category
>         at java.lang.Class.getDeclaredConstructors0(Native Method)
>         at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
>         at java.lang.Class.getConstructor0(Class.java:2699)
>         at java.lang.Class.getConstructor(Class.java:1657)
>         at 
> org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:410)
>         at 
> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
>         at 
> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
>         at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:370)
>         at 
> org.apache.axis.components.logger.LogFactory.getLog(LogFactory.java:37)
>         at 
> org.apache.axis.transport.http.AxisServlet.<clinit>(AxisServlet.java:75)
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Class.java:169)
>         at 
> org.apache.axis.transport.http.AxisServletBase.class$(AxisServletBase.java:59)
>         at 
> org.apache.axis.transport.http.AxisServletBase.<clinit>(AxisServletBase.java:58)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method)
>         at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>         at java.lang.Class.newInstance0(Class.java:355)
>         at java.lang.Class.newInstance(Class.java:308)
>         at 
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104)
>         at 
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
>         at 
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)
>         at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>         at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>         at 
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
>         at 
> org.apache.catalina.core.StandardService.start(StandardService.java:516)
>         at 
> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
>         at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
>         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
> 25-10-2007 17:02:14 org.apache.coyote.http11.Http11Protocol start
> INFO: Starting Coyote HTTP/1.1 on http-8080
> 

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


Re: Log4j and commons-logging unable to locate each other

Posted by "Lilianne E. Blaze" <li...@tlen.pl>.
Hello,
Have you considered trying SLF4J?
The least invasive scenario would be to replace commons-logging.jar with
jcl104-over-slf4j-1.4.2.jar, slf4j-api-1.4.2.jar and
slf4j-log4j12-1.4.2.jar - so you'll have Log4j with SLF4J and
SLF4J-faking-Commons-Logging, no code changes required. I'm not sure if
it will help, but SLF4J was designed specifically to avoid classloader
problems.

Greetings, Lilianne E. Blaze

Jon Friis wrote:
> Hello
>
> I have a problem with log4j and commons-logging which i really hope anybody 
> can help me with. 
>
> Setup:
> Windows 2000, Apache Tomcat 6.0, JRE 1.6.0_02, log4j-1.2.15, commons-logging 
> annd i am using eclipse 3.3.0
>
> Since i have multiple Web services on the same Tomcat server i have been 
> putting log4j.jar in WEB-INF/lib and log4j.properties in WEB-INF/classes.
>
> My problem is some kind of class-loading problem where log4j and 
> commons-logging won't find each other.
>
> 2 scenarios:
>
> 1) commons-logging.jar and log4j.jar are both put in WEB-INF/lib for my 
> webapp.
>
> 2) commons-logging.jar is put in tomcat 6.0/lib (Common classloader according 
> to tomcat 6.0 doc) and log4j.jar in WEB-INF/lib.
>
> The stacktraces of both scenarios are given below.
>
> Question is: Why can't they see each other and how can i solve the problem ?
>
> Can it really be so that i have to wrap the log4j class (as describe in the 
> log4j book) and can someone explain why and will it help ?
>
> Any feed back or solution hints are really appreciated :-)
>
> Thx
> Jon Friis
>
> Scenario 1)
> --------------------------------------------------
>
> 25-10-2007 16:47:24 org.apache.catalina.core.StandardContext loadOnStartup
> SEVERE: Servlet /FAS threw load() exception
> java.lang.NoClassDefFoundError: org.apache.commons.logging.LogFactory
>         at 
> org.apache.axis.components.logger.LogFactory.class$(LogFactory.java:45)
>         at 
> org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at 
> org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41)
>         at 
> org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33)
>         at 
> org.apache.axis.transport.http.AxisServlet.<clinit>(AxisServlet.java:75)
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Class.java:169)
>         at 
> org.apache.axis.transport.http.AxisServletBase.class$(AxisServletBase.java:59)
>         at 
> org.apache.axis.transport.http.AxisServletBase.<clinit>(AxisServletBase.java:58)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method)
>         at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>         at java.lang.Class.newInstance0(Class.java:355)
>         at java.lang.Class.newInstance(Class.java:308)
>         at 
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104)
>         at 
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
>         at 
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)
>         at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>         at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>         at 
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
>         at 
> org.apache.catalina.core.StandardService.start(StandardService.java:516)
>         at 
> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
>         at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
>         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
> 25-10-2007 16:47:25 org.apache.coyote.http11.Http11Protocol start
> INFO: Starting Coyote HTTP/1.1 on http-8080
>
> Scenario 2)
> --------------------------------------------------
>
> java.lang.NoClassDefFoundError: org/apache/log4j/Category
>         at java.lang.Class.getDeclaredConstructors0(Native Method)
>         at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
>         at java.lang.Class.getConstructor0(Class.java:2699)
>         at java.lang.Class.getConstructor(Class.java:1657)
>         at 
> org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:410)
>         at 
> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
>         at 
> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
>         at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:370)
>         at 
> org.apache.axis.components.logger.LogFactory.getLog(LogFactory.java:37)
>         at 
> org.apache.axis.transport.http.AxisServlet.<clinit>(AxisServlet.java:75)
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Class.java:169)
>         at 
> org.apache.axis.transport.http.AxisServletBase.class$(AxisServletBase.java:59)
>         at 
> org.apache.axis.transport.http.AxisServletBase.<clinit>(AxisServletBase.java:58)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method)
>         at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>         at java.lang.Class.newInstance0(Class.java:355)
>         at java.lang.Class.newInstance(Class.java:308)
>         at 
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104)
>         at 
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
>         at 
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)
>         at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>         at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>         at 
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
>         at 
> org.apache.catalina.core.StandardService.start(StandardService.java:516)
>         at 
> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
>         at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
>         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
> 25-10-2007 17:02:14 org.apache.coyote.http11.Http11Protocol start
> INFO: Starting Coyote HTTP/1.1 on http-8080
>
>   


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