commons-logging has a habit of being able to find Log4j using classloader
tricks, but then not being able to actually use it afterwards because they don't
exist in classloaders that are normally visible to each other except via
classloader tricks.  I think there needs to be two way communication between
commons-logging and log4j.  The reason I think so is that I remember using
Weblogic 8.1 which uses Log4j itself, so it is in the server classpath and
having commons-logging in WEB-INF/lib caused similar errors to what you are
seeing.  I had to put commons-logging in Weblogic's server classpath alongside
Log4j, just like Alison did.  Seemed to work after that.

Note:  I only used commons-logging because we were building a Struts-based
webapp.  Struts requies commons-logging.  I'd *never* use it otherwise, to avoid
these ridiculous classloader issues.


Jake

Quoting Alison Ortega <[EMAIL PROTECTED]>:

> I had to put mine in the container classpath in one of the init files -
> it had something to do with the init and the application classpath not
> being enough.  It's been a while, but if you need details, I could
> probably dig them up.
> 
> Alison Ortega
> North Carolina State University
> ACS
> Systems Programmer II
> 919-513-1417
> 
> >>> [EMAIL PROTECTED] 6/23/2004 5:00:42 AM >>>
> 
> The log4j-1.2.8.jar is simply included in the WAR file in WEB-INF/lib.
> 
> If I take it out of there the application deploys successfully, if I
> leave it in I get the exception below.
> 
> I am using the commons-logging api, which should then delegate logging
> 
> to log4j, so I'm not calling log4j methods directly.
> 
> Cheers,
> Keith
> 
> Alison Ortega wrote on 22/06/2004, 18:50:
> 
>  > Where are you defining the log4j.jar in your classpath?
>  >
>  > Alison Ortega
>  > North Carolina State University
>  > ACS
>  > Systems Programmer II
>  > 919-513-1417
>  >
>  > >>> [EMAIL PROTECTED] 6/22/2004 11:02:12 AM >>>
>  > Hi,
>  >
>  > I have a problem deploying a war file containing log4j1.2.8.jar on
>  > weblogic 8.1 sp2 running on RedHat  kernal version 2.4.21-4
>  >
>  > The strange thing is it deploys fine on tomcat, and weblogic running
> on
>  >
>  > windows. Just loses it when I try to deploy it on linux?
>  >
>  > Once I remove the log4j jar it deploys fine.
>  >
>  > Any ideas? Anyone seen this before?
>  >
>  > Below is the exception
>  >
>  > CHeers,
>  > Keith
>  >
>  > <22-Jun-2004 11:38:58 o'clock IST> <Warning> <Deployer>
> <BEA-149004>
>  > <Failures were detected while initiating Deploy task for
> application
>  > rsistats.>
>  > <22-Jun-2004 11:38:58 o'clock IST> <Error> <Deployer> <BEA-149201>
>  > <Failed to complete the deployment task with ID 0 for the
> application
>  > rsistats.
>  > java.lang.NoSuchMethodError:
>  > org.apache.log4j.spi.RootCategory.<init>(Lorg/apache/log4j/Level;)V
>  >          at
> org.apache.log4j.LogManager.<clinit>(LogManager.java:69)
>  >          at org.apache.log4j.Logger.getLogger(Logger.java:85)
>  >          at
>  >
> org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:102)
>  >          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:274)
>  >          at
>  >
>
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525)
> 
> 
>  >
>  >          at
>  >
>
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272)
> 
> 
>  >
>  >          at
>  >
>
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:246)
> 
> 
>  >
>  >          at
>  > org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395)
>  >          at
>  >
> com.sun.faces.config.ConfigureListener.<clinit>(ConfigureListener.java:95)
>  >
>  >          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:274)
>  >          at java.lang.Class.newInstance0(Class.java:306)
>  >          at java.lang.Class.newInstance(Class.java:259)
>  >          at
>  >
>
weblogic.servlet.internal.WebAppServletContext.registerEventListener(WebAppServletContext.java:2808)
> 
> 
>  >
>  >          at
>  >
>
weblogic.servlet.internal.WebAppServletContext.activateFromDescriptors(WebAppServletContext.java:2383)
> 
> 
>  >
>  >          at
>  >
>
weblogic.servlet.internal.WebAppServletContext.activate(WebAppServletContext.java:5610)
> 
> 
>  >
>  >          at
>  >
>
weblogic.servlet.internal.WebAppServletContext.setActive(WebAppServletContext.java:5588)
> 
> 
>  >
>  >          at
>  >
> weblogic.servlet.internal.WebAppModule.activate(WebAppModule.java:841)
>  >          at
>  >
>
weblogic.j2ee.J2EEApplicationContainer.activateModule(J2EEApplicationContainer.java:3127)
> 
> 
>  >
>  >          at
>  >
>
weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2081)
> 
> 
>  >
>  >          at
>  >
>
weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2062)
> 
> 
>  >
>  >          at
>  >
>
weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activateContainer(SlaveDeployer.java:2592)
> 
> 
>  >
>  >          at
>  >
>
weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
> 
> 
>  >
>  >          at
>  >
>
weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.java:2317)
> 
> 
>  >
>  >          at
>  >
>
weblogic.management.deploy.slave.SlaveDeployer$Task.checkAutoCommit(SlaveDeployer.java:2399)
> 
> 
>  >
>  >          at
>  >
>
weblogic.management.deploy.slave.SlaveDeployer$Task.prepare(SlaveDeployer.java:2311)
> 
> 
>  >
>  >          at
>  >
>
weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2479)
> 
> 
>  >
>  >          at
>  >
>
weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
> 
> 
>  >
>  >          at
>  >
>
weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
> 
> 
>  >
>  >          at
>  >
>
weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
> 
> 
>  >
>  >          at
>  >
> weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
> 
> 
>  >
>  >          at
>  > weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
>  >          at
> weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
>  > --------------- nested within: ------------------
>  > weblogic.management.ManagementException:  - with nested exception:
>  > [java.lang.NoSuchMethodError:
>  >
> org.apache.log4j.spi.RootCategory.<init>(Lorg/apache/log4j/Level;)V]
>  >          at
>  >
>
weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2491)
> 
> 
>  >
>  >          at
>  >
>
weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
> 
> 
>  >
>  >          at
>  >
>
weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
> 
> 
>  >
>  >          at
>  >
>
weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
> 
> 
>  >
>  >          at
>  >
> weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
> 
> 
>  >
>  >          at
>  > weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
>  >          at
> weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
>  > >
>  >
>  >
>  >
>  >
>  >
>  >
>  >
>  >
> ---------------------------------------------------------------------
>  > To unsubscribe, e-mail: [EMAIL PROTECTED]
>  > For additional commands, e-mail: [EMAIL PROTECTED]
> 
>  >
>  >
>  >
> ---------------------------------------------------------------------
>  > To unsubscribe, e-mail: [EMAIL PROTECTED]
>  > For additional commands, e-mail: [EMAIL PROTECTED]
> 
>  >
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

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

Reply via email to