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

Reply via email to