Fhomasp wrote:
> Hey,
>
> Thanks for your replies.
>
> The thing with the older commons-logging implementations is because of
> dependencies, configured through maven2, on older programming logic.
> Because of these dependencies there's at least two versions of commons
> logging in my classpath.
There must be another reason for this. Maven 2 will only put one version
of an artifact on the classpath, provided they have the same
groupId/artifactId. For a view of your projects dependency tree use this
command:
mvn dependency:tree
>
> On the brightside though. I added the library jcl104-overslf4j 1.1.0, which
> allows my project to build. There's still an error going but it's native to
> the internal architecture here.
>
> So thanks :)
>
>
>
> Simon Kitching wrote:
>> Yes, hopefully Dennis' suggestion will work.
>>
>> It does look like whatever environment this code is running in, it is
>> using a rather old version of commons-logging. The reported exception
>> only occurs in commons-logging 1.0.x. Version 1.1 of commons-logging was
>> released in May 2006 and 1.1.1 was released in Nov 2007, and neither of
>> these should ever throw an exception (though you might not get any
>> logging in this case, as there is clearly something weird going on with
>> classloader hierarchies).
>>
>> Regards, Simon
>>
>> On Thu, 2008-08-28 at 22:49 +0200, Dennis Lundberg wrote:
>>> The simplest thing to do is to put a commons-logging.properties into the
>>> classpath. The file should contain just one property to set the logging
>>> implementation to something other than log4j, like this:
>>>
>>> org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
>>>
>>>
>>> Fhomasp wrote:
>>>> Hey,
>>>>
>>>> I've been attempting to load a test environment in a Jetty container
>>> for
>>>> JSFUnit through the cargo-maven2-plugin.
>>>> Sadly every time the deployment to Jetty is attempted there is a huge
>>> list
>>>> of exceptions caused by Commons-logging.
>>>> When using no logger at all stderr is used for output, causing the
>>> following
>>>> exceptionstack, which is roughly the same if I use Log4j:
>>>>
>>>> [INFO] Building war:
>>>>
>>> C:\projects\trunk\vlafo\olympus\JSFUnitTest\target\JSFUnitTestWar-1.4.2.war
>>>> [INFO] [cargo:start {execution: start-container}]
>>>> [INFO] No container defined, using a default [jetty6x, embedded]
>>> container
>>>> [INFO] [beddedLocalContainer] Jetty 6.x Embedded starting...
>>>> 2008-08-26 15:49:14.375::INFO: Logging to STDERR via
>>>> org.mortbay.log.StdErrLog
>>>> 2008-08-26 15:49:14.421::INFO: jetty-6.1.1rc1
>>>> 2008-08-26 15:49:14.609::INFO: Extract
>>>> jar:file:/C:/projects/trunk/vlafo/olympus/JSFUnitTest/target
>>>> /JSFUnitTestWar-1.4.2.war!/ to C:\DOCUME~1\DEVELO~
>>>>
>>> 1\LOCALS~1\Temp\Jetty_0_0_0_0_8080_JSFUnitTestWar-1.4.2.war__JSFUnitTestWar-1_4_2__aar4a7\webapp
>>>> 2008-08-26 15:49:19.046::WARN: failed
>>>> [EMAIL PROTECTED]/JSFUnitTestWar
>>>> -1.4.2,jar:file:/C:/projects/trunk/vlafo/olympus/J
>>>> SFUnitTest/target/JSFUnitTestWar-1.4.2.war!/}
>>>> java.lang.ExceptionInInitializerError
>>>> at
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>> Method)
>>>> at
>>>>
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:
>>>> 39)
>>>> at
>>>>
>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorIm
>>>> pl.java:27)
>>>> at
>>> java.lang.reflect.Constructor.newInstance(Constructor.java:494)
>>>> at java.lang.Class.newInstance0(Class.java:350)
>>>> at java.lang.Class.newInstance(Class.java:303)
>>>> at
>>>>
>>> org.mortbay.jetty.webapp.TagLibConfiguration.configureWebApp(TagLibConfiguration.java:239
>>>> )
>>>> at
>>>>
>>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1188)
>>>> at
>>>>
>>> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:481)
>>>> at
>>>> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:434)
>>>> at
>>>>
>>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>>>> at
>>>>
>>> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147)
>>>> at
>>>>
>>> org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:
>>>> 120)
>>>> at
>>>>
>>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>>>> at
>>>>
>>> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147)
>>>> at
>>>>
>>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>>>> at
>>>>
>>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
>>>> at org.mortbay.jetty.Server.doStart(Server.java:210)
>>>> at
>>>>
>>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>>>> 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:585)
>>>> at
>>>>
>>> org.codehaus.cargo.container.jetty.internal.JettyExecutorThread.run(JettyExecutorThread.j
>>>> ava:68)
>>>> Caused by: org.apache.commons.logging.LogConfigurationException:
>>>> org.apache.commons.logging.LogConfi
>>>> gurationException: No suitable Log constructor [Lj
>>>> ava.lang.Class;@12305e8 for org.apache.commons.logging.impl.Log4JLogger
>>>> (Caused by java.lang.NoClass
>>>> DefFoundError: org/apache/log4j/Category) (Caused
>>>> by org.apache.commons.logging.LogConfigurationException: No suitable
>>> Log
>>>> constructor [Ljava.lang.Cla
>>>> ss;@12305e8 for org.apache.commons.logging.impl.Lo
>>>> g4JLogger (Caused by java.lang.NoClassDefFoundError:
>>>> org/apache/log4j/Category))
>>>> at
>>>>
>>> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543)
>>>> at
>>>>
>>> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
>>>> at
>>>>
>>> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
>>>> at
>>> org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
>>>> at
>>>>
>>> org.apache.myfaces.webapp.StartupServletContextListener.<clinit>(StartupServletContextListener.java:44)
>>>> ... 24 more
>>>> Caused by: org.apache.commons.logging.LogConfigurationException: No
>>> suitable
>>>> Log constructor [Ljava.
>>>> lang.Class;@12305e8 for org.apache.commons.logging
>>>> .impl.Log4JLogger (Caused by java.lang.NoClassDefFoundError:
>>>> org/apache/log4j/Category)
>>>> at
>>>>
>>> org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:413)
>>>> at
>>>>
>>> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
>>>> ... 28 more
>>>> Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Category
>>>> at java.lang.Class.getDeclaredConstructors0(Native Method)
>>>> at
>>> java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)
>>>> at java.lang.Class.getConstructor0(Class.java:2671)
>>>> at java.lang.Class.getConstructor(Class.java:1629)
>>>> at
>>>>
>>> org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:410)
>>>>
>>>> After some web searching I found an alternative for log4j or stderr,
>>> namely
>>>> slf4j. However using this one still causes a similar exception stack:
>>>>
>>>> [INFO] Generating war
>>>>
>>> C:\projects\trunk\vlafo\olympus\JSFUnitTest\target\JSFUnitTestWar-1.4.2.war
>>>> [INFO] Building war:
>>>>
>>> C:\projects\trunk\vlafo\olympus\JSFUnitTest\target\JSFUnitTestWar-1.4.2.war
>>>> [INFO] [cargo:start {execution: start-container}]
>>>> [INFO] No container defined, using a default [jetty6x, embedded]
>>> container
>>>> [INFO] [beddedLocalContainer] Jetty 6.x Embedded starting...
>>>> 2008-08-25 10:06:07.140::INFO: Logging to STDERR via
>>>> org.mortbay.log.StdErrLog
>>>> 2008-08-25 10:06:07.171::INFO: jetty-6.1.1rc1
>>>> 2008-08-25 10:06:08.484::INFO: Extract
>>>> jar:file:/C:/projects/trunk/vlafo/olympus/JSFUnitTest/target
>>>> /JSFUnitTestWar-1.4.2.war!/ to C:\DOCUME~1\DEVELO~
>>>>
>>> 1\LOCALS~1\Temp\Jetty_0_0_0_0_8080_JSFUnitTestWar-1.4.2.war__JSFUnitTestWar-1_4_2__aar4a7\webapp
>>>> 2008-08-25 10:06:12.781::WARN: failed
>>>> [EMAIL PROTECTED]/JSFUnitTestWa
>>>> r-1.4.2,jar:file:/C:/projects/trunk/vlafo/olympus/
>>>> JSFUnitTest/target/JSFUnitTestWar-1.4.2.war!/}
>>>> java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
>>>> at
>>>>
>>> org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
>>>> at
>>>>
>>> org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:131)
>>>> at
>>> org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
>>>> at
>>>>
>>> org.apache.myfaces.webapp.StartupServletContextListener.<clinit>(StartupServletContextListener.java:44)
>>>> at
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>> Method)
>>>> at
>>>>
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:
>>>> 39)
>>>> at
>>>>
>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorIm
>>>> pl.java:27)
>>>> at
>>> java.lang.reflect.Constructor.newInstance(Constructor.java:494)
>>>> at java.lang.Class.newInstance0(Class.java:350)
>>>> at java.lang.Class.newInstance(Class.java:303)
>>>> at
>>>>
>>> org.mortbay.jetty.webapp.TagLibConfiguration.configureWebApp(TagLibConfiguration.java:239
>>>> )
>>>>
>>>> I'm at a loss on how to get this issue fixed. If anyone knows what to
>>> do,
>>>> by all means let me know ;-)
>>>
>>
>>
>
--
Dennis Lundberg