No suitable Log constructor error [message #91546] |
Wed, 04 July 2007 22:00  |
Eclipse User |
|
|
|
Hi all.
I have been testing the JSP Examples Bundle found at:
http://www.eclipse.org/equinox/server/jsp_support.php
It works fine without changes, but when I try to add a dependency to
org.apache.log4j (either as Import-Package or Require-Bundle) the error
below throws out.
Any clue about how to fix this? I checked either on this group and on
Eclipse bugzilla but unfortunately I wasn't able to find a solution so far.
org.apache.commons.logging.LogConfigurationException:
org.apache.commons.logging.LogConfigurationException: No suitable Log
constructor [Ljava.lang.Class;@ff2413 for
org.apache.commons.logging.impl.Log4JLogger (Caused by
java.lang.NoClassDefFoundError: org/apache/log4j/Category) (Caused by
org.apache.commons.logging.LogConfigurationException: No suitable Log
constructor [Ljava.lang.Class;@ff2413 for
org.apache.commons.logging.impl.Log4JLogger (Caused by
java.lang.NoClassDefFoundError: org/apache/log4j/Category))
at
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(L ogFactoryImpl.java:543)
at
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(L ogFactoryImpl.java:235)
at
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(L ogFactoryImpl.java:209)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java :351)
at
org.apache.jasper.EmbeddedServletOptions.<init>(EmbeddedServletOptions.java:43)
at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:97 )
at org.eclipse.equinox.jsp.jasper.JspServlet.init(JspServlet.ja va:81)
at
org.eclipse.equinox.http.helper.ContextPathServletAdaptor.in it(ContextPathServletAdaptor.java:31)
at
org.eclipse.equinox.http.servlet.internal.ServletRegistratio n.init(ServletRegistration.java:64)
at
org.eclipse.equinox.http.servlet.internal.ProxyServlet.regis terServlet(ProxyServlet.java:140)
at
org.eclipse.equinox.http.servlet.internal.HttpServiceImpl.re gisterServlet(HttpServiceImpl.java:50)
at
org.eclipse.equinox.jsp.examples.Activator$HttpServiceTracke r.addingService(Activator.java:48)
at
org.osgi.util.tracker.ServiceTracker$Tracked.trackAdding(Ser viceTracker.java:1064)
at
org.osgi.util.tracker.ServiceTracker$Tracked.trackInitialSer vices(ServiceTracker.java:926)
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.jav a:330)
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.jav a:274)
at org.eclipse.equinox.jsp.examples.Activator.start(Activator.j ava:26)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl$2 .run(BundleContextImpl.java:999)
at java.security.AccessController.doPrivileged(Native Method)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tartActivator(BundleContextImpl.java:993)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tart(BundleContextImpl.java:974)
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWor ker(BundleHost.java:346)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.resu me(AbstractBundle.java:350)
at
org.eclipse.osgi.framework.internal.core.Framework.resumeBun dle(Framework.java:1118)
at
org.eclipse.osgi.framework.internal.core.StartLevelManager.r esumeBundles(StartLevelManager.java:634)
at
org.eclipse.osgi.framework.internal.core.StartLevelManager.i ncFWSL(StartLevelManager.java:508)
at
org.eclipse.osgi.framework.internal.core.StartLevelManager.d oSetStartLevel(StartLevelManager.java:282)
at
org.eclipse.osgi.framework.internal.core.StartLevelManager.d ispatchEvent(StartLevelManager.java:468)
at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEve nt(EventManager.java:195)
at
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread .run(EventManager.java:297)
Caused by: org.apache.commons.logging.LogConfigurationException: No suitable
Log constructor [Ljava.lang.Class;@ff2413 for
org.apache.commons.logging.impl.Log4JLogger (Caused by
java.lang.NoClassDefFoundError: org/apache/log4j/Category)
at
org.apache.commons.logging.impl.LogFactoryImpl.getLogConstru ctor(LogFactoryImpl.java:413)
at
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(L ogFactoryImpl.java:529)
.... 29 more
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Category
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.getConstructor(Unknown Source)
at
org.apache.commons.logging.impl.LogFactoryImpl.getLogConstru ctor(LogFactoryImpl.java:410)
.... 30 more
|
|
|
|
Re: No suitable Log constructor error [message #91721 is a reply to message #91592] |
Sun, 08 July 2007 10:05   |
Eclipse User |
|
|
|
Hi Simon,
Thank you very much for the hints. I tried 2) and 3) (unfortunately I
couldn't drop log4j dependency, so 1) was not an option for me).
Bad news is that neither 2) and 3) worked too. However, looking into SLF4J
pattern I had the idea to build a log4j wrapper in same way as
jcl-over-slf4j and that finally worked. I added some code snippet below, but
I can provide the full solution for anyone interested.
Anyway, your hints pointed me to a solution. Thanks!
Marcos
package org.apache.log4j;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class Logger {
private Log log;
private Logger(Class clazz) {
log = LogFactory.getLog(clazz);
}
private Logger(String name) {
log = LogFactory.getLog(name);
}
public static Logger getLogger(Class clazz) {
return new Logger(clazz);
}
public void debug(Object message) {
System.out.println("DEBUG: " + message);
log.debug(message);
}
public void debug(Object message, Throwable t) {
System.out.println("DEBUG: " + message);
log.debug(message, t);
}
....
}
"Simon Kaegi" <simon_kaegi@ca.ibm.com> escreveu na mensagem
news:f6j80l$p1q$1@build.eclipse.org...
> Hi Marcos,
>
> Please open a bug for this - this is going to be tough to deal with.
> The problem here is that your use of log4j in your jsp is being leaked via
> the context class loader into the jasper implementations use of commons
> logging.
> The commons logging discovery process will find log4j on the CCL but not
> in it's own class hierarchy and will then run into problems.
>
> I can think of two workarounds:
> 1) Remove your direct dependency on log4j from your jsp bundle and instead
> move it to another bundle you can call from your jsp.
> 2) If you're in full control of your platform add a fragment to the
> commons.logging bundle that imports log4j
> 3) Take a look at SLF4J and jcl-over-slf4j and create bundles to replace
> the commons.logging bundle.
>
> HTH
> -Simon
>
> "Marcos Pereira" <marcos-luiz@ig.com.br> wrote in message
> news:f6hmf2$3dp$1@build.eclipse.org...
>> Hi all.
>>
>> I have been testing the JSP Examples Bundle found at:
>> http://www.eclipse.org/equinox/server/jsp_support.php
>>
>> It works fine without changes, but when I try to add a dependency to
>> org.apache.log4j (either as Import-Package or Require-Bundle) the error
>> below throws out.
>>
>> Any clue about how to fix this? I checked either on this group and on
>> Eclipse bugzilla but unfortunately I wasn't able to find a solution so
>> far.
>>
>> org.apache.commons.logging.LogConfigurationException:
>> org.apache.commons.logging.LogConfigurationException: No suitable Log
>> constructor [Ljava.lang.Class;@ff2413 for
>> org.apache.commons.logging.impl.Log4JLogger (Caused by
>> java.lang.NoClassDefFoundError: org/apache/log4j/Category) (Caused by
>> org.apache.commons.logging.LogConfigurationException: No suitable Log
>> constructor [Ljava.lang.Class;@ff2413 for
>> org.apache.commons.logging.impl.Log4JLogger (Caused by
>> java.lang.NoClassDefFoundError: org/apache/log4j/Category))
>> at
>> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(L ogFactoryImpl.java:543)
>> at
>> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(L ogFactoryImpl.java:235)
>> at
>> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(L ogFactoryImpl.java:209)
>> at org.apache.commons.logging.LogFactory.getLog(LogFactory.java :351)
>> at
>> org.apache.jasper.EmbeddedServletOptions.<init>(EmbeddedServletOptions.java:43)
>> at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:97 )
>> at org.eclipse.equinox.jsp.jasper.JspServlet.init(JspServlet.ja va:81)
>> at
>> org.eclipse.equinox.http.helper.ContextPathServletAdaptor.in it(ContextPathServletAdaptor.java:31)
>> at
>> org.eclipse.equinox.http.servlet.internal.ServletRegistratio n.init(ServletRegistration.java:64)
>> at
>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.regis terServlet(ProxyServlet.java:140)
>> at
>> org.eclipse.equinox.http.servlet.internal.HttpServiceImpl.re gisterServlet(HttpServiceImpl.java:50)
>> at
>> org.eclipse.equinox.jsp.examples.Activator$HttpServiceTracke r.addingService(Activator.java:48)
>> at
>> org.osgi.util.tracker.ServiceTracker$Tracked.trackAdding(Ser viceTracker.java:1064)
>> at
>> org.osgi.util.tracker.ServiceTracker$Tracked.trackInitialSer vices(ServiceTracker.java:926)
>> at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.jav a:330)
>> at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.jav a:274)
>> at org.eclipse.equinox.jsp.examples.Activator.start(Activator.j ava:26)
>> at
>> org.eclipse.osgi.framework.internal.core.BundleContextImpl$2 .run(BundleContextImpl.java:999)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at
>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tartActivator(BundleContextImpl.java:993)
>> at
>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tart(BundleContextImpl.java:974)
>> at
>> org.eclipse.osgi.framework.internal.core.BundleHost.startWor ker(BundleHost.java:346)
>> at
>> org.eclipse.osgi.framework.internal.core.AbstractBundle.resu me(AbstractBundle.java:350)
>> at
>> org.eclipse.osgi.framework.internal.core.Framework.resumeBun dle(Framework.java:1118)
>> at
>> org.eclipse.osgi.framework.internal.core.StartLevelManager.r esumeBundles(StartLevelManager.java:634)
>> at
>> org.eclipse.osgi.framework.internal.core.StartLevelManager.i ncFWSL(StartLevelManager.java:508)
>> at
>> org.eclipse.osgi.framework.internal.core.StartLevelManager.d oSetStartLevel(StartLevelManager.java:282)
>> at
>> org.eclipse.osgi.framework.internal.core.StartLevelManager.d ispatchEvent(StartLevelManager.java:468)
>> at
>> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEve nt(EventManager.java:195)
>> at
>> org.eclipse.osgi.framework.eventmgr.EventManager$EventThread .run(EventManager.java:297)
>> Caused by: org.apache.commons.logging.LogConfigurationException: No
>> suitable Log constructor [Ljava.lang.Class;@ff2413 for
>> org.apache.commons.logging.impl.Log4JLogger (Caused by
>> java.lang.NoClassDefFoundError: org/apache/log4j/Category)
>> at
>> org.apache.commons.logging.impl.LogFactoryImpl.getLogConstru ctor(LogFactoryImpl.java:413)
>> at
>> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(L ogFactoryImpl.java:529)
>> ... 29 more
>> Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Category
>> at java.lang.Class.getDeclaredConstructors0(Native Method)
>> at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
>> at java.lang.Class.getConstructor0(Unknown Source)
>> at java.lang.Class.getConstructor(Unknown Source)
>> at
>> org.apache.commons.logging.impl.LogFactoryImpl.getLogConstru ctor(LogFactoryImpl.java:410)
>> ... 30 more
>>
>
>
|
|
|
Re: No suitable Log constructor error [message #91734 is a reply to message #91721] |
Sun, 08 July 2007 10:46   |
Eclipse User |
|
|
|
The bug entry #195765 was added to Eclipse bugzilla, regarding this topic.
Link: https://bugs.eclipse.org/bugs/show_bug.cgi?id=195765
Marcos
"Marcos Pereira" <marcos-luiz@ig.com.br> escreveu na mensagem
news:f6qr01$eoe$1@build.eclipse.org...
> Hi Simon,
>
> Thank you very much for the hints. I tried 2) and 3) (unfortunately I
> couldn't drop log4j dependency, so 1) was not an option for me).
>
> Bad news is that neither 2) and 3) worked too. However, looking into SLF4J
> pattern I had the idea to build a log4j wrapper in same way as
> jcl-over-slf4j and that finally worked. I added some code snippet below,
> but I can provide the full solution for anyone interested.
>
> Anyway, your hints pointed me to a solution. Thanks!
>
> Marcos
>
>
> package org.apache.log4j;
>
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
>
> public class Logger {
>
> private Log log;
>
> private Logger(Class clazz) {
> log = LogFactory.getLog(clazz);
> }
>
> private Logger(String name) {
> log = LogFactory.getLog(name);
> }
>
> public static Logger getLogger(Class clazz) {
> return new Logger(clazz);
> }
>
> public void debug(Object message) {
> System.out.println("DEBUG: " + message);
> log.debug(message);
> }
>
> public void debug(Object message, Throwable t) {
> System.out.println("DEBUG: " + message);
> log.debug(message, t);
> }
>
> ...
>
> }
>
>
> "Simon Kaegi" <simon_kaegi@ca.ibm.com> escreveu na mensagem
> news:f6j80l$p1q$1@build.eclipse.org...
>> Hi Marcos,
>>
>> Please open a bug for this - this is going to be tough to deal with.
>> The problem here is that your use of log4j in your jsp is being leaked
>> via the context class loader into the jasper implementations use of
>> commons logging.
>> The commons logging discovery process will find log4j on the CCL but not
>> in it's own class hierarchy and will then run into problems.
>>
>> I can think of two workarounds:
>> 1) Remove your direct dependency on log4j from your jsp bundle and
>> instead move it to another bundle you can call from your jsp.
>> 2) If you're in full control of your platform add a fragment to the
>> commons.logging bundle that imports log4j
>> 3) Take a look at SLF4J and jcl-over-slf4j and create bundles to replace
>> the commons.logging bundle.
>>
>> HTH
>> -Simon
>>
>> "Marcos Pereira" <marcos-luiz@ig.com.br> wrote in message
>> news:f6hmf2$3dp$1@build.eclipse.org...
>>> Hi all.
>>>
>>> I have been testing the JSP Examples Bundle found at:
>>> http://www.eclipse.org/equinox/server/jsp_support.php
>>>
>>> It works fine without changes, but when I try to add a dependency to
>>> org.apache.log4j (either as Import-Package or Require-Bundle) the error
>>> below throws out.
>>>
>>> Any clue about how to fix this? I checked either on this group and on
>>> Eclipse bugzilla but unfortunately I wasn't able to find a solution so
>>> far.
>>>
>>> org.apache.commons.logging.LogConfigurationException:
>>> org.apache.commons.logging.LogConfigurationException: No suitable Log
>>> constructor [Ljava.lang.Class;@ff2413 for
>>> org.apache.commons.logging.impl.Log4JLogger (Caused by
>>> java.lang.NoClassDefFoundError: org/apache/log4j/Category) (Caused by
>>> org.apache.commons.logging.LogConfigurationException: No suitable Log
>>> constructor [Ljava.lang.Class;@ff2413 for
>>> org.apache.commons.logging.impl.Log4JLogger (Caused by
>>> java.lang.NoClassDefFoundError: org/apache/log4j/Category))
>>> at
>>> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(L ogFactoryImpl.java:543)
>>> at
>>> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(L ogFactoryImpl.java:235)
>>> at
>>> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(L ogFactoryImpl.java:209)
>>> at org.apache.commons.logging.LogFactory.getLog(LogFactory.java :351)
>>> at
>>> org.apache.jasper.EmbeddedServletOptions.<init>(EmbeddedServletOptions.java:43)
>>> at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:97 )
>>> at org.eclipse.equinox.jsp.jasper.JspServlet.init(JspServlet.ja va:81)
>>> at
>>> org.eclipse.equinox.http.helper.ContextPathServletAdaptor.in it(ContextPathServletAdaptor.java:31)
>>> at
>>> org.eclipse.equinox.http.servlet.internal.ServletRegistratio n.init(ServletRegistration.java:64)
>>> at
>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.regis terServlet(ProxyServlet.java:140)
>>> at
>>> org.eclipse.equinox.http.servlet.internal.HttpServiceImpl.re gisterServlet(HttpServiceImpl.java:50)
>>> at
>>> org.eclipse.equinox.jsp.examples.Activator$HttpServiceTracke r.addingService(Activator.java:48)
>>> at
>>> org.osgi.util.tracker.ServiceTracker$Tracked.trackAdding(Ser viceTracker.java:1064)
>>> at
>>> org.osgi.util.tracker.ServiceTracker$Tracked.trackInitialSer vices(ServiceTracker.java:926)
>>> at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.jav a:330)
>>> at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.jav a:274)
>>> at org.eclipse.equinox.jsp.examples.Activator.start(Activator.j ava:26)
>>> at
>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl$2 .run(BundleContextImpl.java:999)
>>> at java.security.AccessController.doPrivileged(Native Method)
>>> at
>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tartActivator(BundleContextImpl.java:993)
>>> at
>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tart(BundleContextImpl.java:974)
>>> at
>>> org.eclipse.osgi.framework.internal.core.BundleHost.startWor ker(BundleHost.java:346)
>>> at
>>> org.eclipse.osgi.framework.internal.core.AbstractBundle.resu me(AbstractBundle.java:350)
>>> at
>>> org.eclipse.osgi.framework.internal.core.Framework.resumeBun dle(Framework.java:1118)
>>> at
>>> org.eclipse.osgi.framework.internal.core.StartLevelManager.r esumeBundles(StartLevelManager.java:634)
>>> at
>>> org.eclipse.osgi.framework.internal.core.StartLevelManager.i ncFWSL(StartLevelManager.java:508)
>>> at
>>> org.eclipse.osgi.framework.internal.core.StartLevelManager.d oSetStartLevel(StartLevelManager.java:282)
>>> at
>>> org.eclipse.osgi.framework.internal.core.StartLevelManager.d ispatchEvent(StartLevelManager.java:468)
>>> at
>>> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEve nt(EventManager.java:195)
>>> at
>>> org.eclipse.osgi.framework.eventmgr.EventManager$EventThread .run(EventManager.java:297)
>>> Caused by: org.apache.commons.logging.LogConfigurationException: No
>>> suitable Log constructor [Ljava.lang.Class;@ff2413 for
>>> org.apache.commons.logging.impl.Log4JLogger (Caused by
>>> java.lang.NoClassDefFoundError: org/apache/log4j/Category)
>>> at
>>> org.apache.commons.logging.impl.LogFactoryImpl.getLogConstru ctor(LogFactoryImpl.java:413)
>>> at
>>> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(L ogFactoryImpl.java:529)
>>> ... 29 more
>>> Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Category
>>> at java.lang.Class.getDeclaredConstructors0(Native Method)
>>> at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
>>> at java.lang.Class.getConstructor0(Unknown Source)
>>> at java.lang.Class.getConstructor(Unknown Source)
>>> at
>>> org.apache.commons.logging.impl.LogFactoryImpl.getLogConstru ctor(LogFactoryImpl.java:410)
>>> ... 30 more
>>>
>>
>>
>
>
|
|
|
Re: No suitable Log constructor error [message #91749 is a reply to message #91734] |
Sun, 08 July 2007 10:49   |
Eclipse User |
|
|
|
Thanks Marcos.
I'm definitely interested in your approach if you want to add it as
attachment to the bug.
-Simon
"Marcos Pereira" <marcos-luiz@ig.com.br> wrote in message
news:f6qtc2$jbb$1@build.eclipse.org...
> The bug entry #195765 was added to Eclipse bugzilla, regarding this topic.
> Link: https://bugs.eclipse.org/bugs/show_bug.cgi?id=195765
>
> Marcos
>
>
> "Marcos Pereira" <marcos-luiz@ig.com.br> escreveu na mensagem
> news:f6qr01$eoe$1@build.eclipse.org...
>> Hi Simon,
>>
>> Thank you very much for the hints. I tried 2) and 3) (unfortunately I
>> couldn't drop log4j dependency, so 1) was not an option for me).
>>
>> Bad news is that neither 2) and 3) worked too. However, looking into
>> SLF4J pattern I had the idea to build a log4j wrapper in same way as
>> jcl-over-slf4j and that finally worked. I added some code snippet below,
>> but I can provide the full solution for anyone interested.
>>
>> Anyway, your hints pointed me to a solution. Thanks!
>>
>> Marcos
>>
>>
>> package org.apache.log4j;
>>
>> import org.apache.commons.logging.Log;
>> import org.apache.commons.logging.LogFactory;
>>
>> public class Logger {
>>
>> private Log log;
>>
>> private Logger(Class clazz) {
>> log = LogFactory.getLog(clazz);
>> }
>>
>> private Logger(String name) {
>> log = LogFactory.getLog(name);
>> }
>>
>> public static Logger getLogger(Class clazz) {
>> return new Logger(clazz);
>> }
>>
>> public void debug(Object message) {
>> System.out.println("DEBUG: " + message);
>> log.debug(message);
>> }
>>
>> public void debug(Object message, Throwable t) {
>> System.out.println("DEBUG: " + message);
>> log.debug(message, t);
>> }
>>
>> ...
>>
>> }
>>
>>
>> "Simon Kaegi" <simon_kaegi@ca.ibm.com> escreveu na mensagem
>> news:f6j80l$p1q$1@build.eclipse.org...
>>> Hi Marcos,
>>>
>>> Please open a bug for this - this is going to be tough to deal with.
>>> The problem here is that your use of log4j in your jsp is being leaked
>>> via the context class loader into the jasper implementations use of
>>> commons logging.
>>> The commons logging discovery process will find log4j on the CCL but not
>>> in it's own class hierarchy and will then run into problems.
>>>
>>> I can think of two workarounds:
>>> 1) Remove your direct dependency on log4j from your jsp bundle and
>>> instead move it to another bundle you can call from your jsp.
>>> 2) If you're in full control of your platform add a fragment to the
>>> commons.logging bundle that imports log4j
>>> 3) Take a look at SLF4J and jcl-over-slf4j and create bundles to replace
>>> the commons.logging bundle.
>>>
>>> HTH
>>> -Simon
>>>
>>> "Marcos Pereira" <marcos-luiz@ig.com.br> wrote in message
>>> news:f6hmf2$3dp$1@build.eclipse.org...
>>>> Hi all.
>>>>
>>>> I have been testing the JSP Examples Bundle found at:
>>>> http://www.eclipse.org/equinox/server/jsp_support.php
>>>>
>>>> It works fine without changes, but when I try to add a dependency to
>>>> org.apache.log4j (either as Import-Package or Require-Bundle) the error
>>>> below throws out.
>>>>
>>>> Any clue about how to fix this? I checked either on this group and on
>>>> Eclipse bugzilla but unfortunately I wasn't able to find a solution so
>>>> far.
>>>>
>>>> org.apache.commons.logging.LogConfigurationException:
>>>> org.apache.commons.logging.LogConfigurationException: No suitable Log
>>>> constructor [Ljava.lang.Class;@ff2413 for
>>>> org.apache.commons.logging.impl.Log4JLogger (Caused by
>>>> java.lang.NoClassDefFoundError: org/apache/log4j/Category) (Caused by
>>>> org.apache.commons.logging.LogConfigurationException: No suitable Log
>>>> constructor [Ljava.lang.Class;@ff2413 for
>>>> org.apache.commons.logging.impl.Log4JLogger (Caused by
>>>> java.lang.NoClassDefFoundError: org/apache/log4j/Category))
>>>> at
>>>> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(L ogFactoryImpl.java:543)
>>>> at
>>>> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(L ogFactoryImpl.java:235)
>>>> at
>>>> org.apache.commons.logging.impl.LogFactoryImpl.getInstance(L ogFactoryImpl.java:209)
>>>> at org.apache.commons.logging.LogFactory.getLog(LogFactory.java :351)
>>>> at
>>>> org.apache.jasper.EmbeddedServletOptions.<init>(EmbeddedServletOptions.java:43)
>>>> at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:97 )
>>>> at org.eclipse.equinox.jsp.jasper.JspServlet.init(JspServlet.ja va:81)
>>>> at
>>>> org.eclipse.equinox.http.helper.ContextPathServletAdaptor.in it(ContextPathServletAdaptor.java:31)
>>>> at
>>>> org.eclipse.equinox.http.servlet.internal.ServletRegistratio n.init(ServletRegistration.java:64)
>>>> at
>>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.regis terServlet(ProxyServlet.java:140)
>>>> at
>>>> org.eclipse.equinox.http.servlet.internal.HttpServiceImpl.re gisterServlet(HttpServiceImpl.java:50)
>>>> at
>>>> org.eclipse.equinox.jsp.examples.Activator$HttpServiceTracke r.addingService(Activator.java:48)
>>>> at
>>>> org.osgi.util.tracker.ServiceTracker$Tracked.trackAdding(Ser viceTracker.java:1064)
>>>> at
>>>> org.osgi.util.tracker.ServiceTracker$Tracked.trackInitialSer vices(ServiceTracker.java:926)
>>>> at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.jav a:330)
>>>> at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.jav a:274)
>>>> at org.eclipse.equinox.jsp.examples.Activator.start(Activator.j ava:26)
>>>> at
>>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl$2 .run(BundleContextImpl.java:999)
>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>> at
>>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tartActivator(BundleContextImpl.java:993)
>>>> at
>>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tart(BundleContextImpl.java:974)
>>>> at
>>>> org.eclipse.osgi.framework.internal.core.BundleHost.startWor ker(BundleHost.java:346)
>>>> at
>>>> org.eclipse.osgi.framework.internal.core.AbstractBundle.resu me(AbstractBundle.java:350)
>>>> at
>>>> org.eclipse.osgi.framework.internal.core.Framework.resumeBun dle(Framework.java:1118)
>>>> at
>>>> org.eclipse.osgi.framework.internal.core.StartLevelManager.r esumeBundles(StartLevelManager.java:634)
>>>> at
>>>> org.eclipse.osgi.framework.internal.core.StartLevelManager.i ncFWSL(StartLevelManager.java:508)
>>>> at
>>>> org.eclipse.osgi.framework.internal.core.StartLevelManager.d oSetStartLevel(StartLevelManager.java:282)
>>>> at
>>>> org.eclipse.osgi.framework.internal.core.StartLevelManager.d ispatchEvent(StartLevelManager.java:468)
>>>> at
>>>> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEve nt(EventManager.java:195)
>>>> at
>>>> org.eclipse.osgi.framework.eventmgr.EventManager$EventThread .run(EventManager.java:297)
>>>> Caused by: org.apache.commons.logging.LogConfigurationException: No
>>>> suitable Log constructor [Ljava.lang.Class;@ff2413 for
>>>> org.apache.commons.logging.impl.Log4JLogger (Caused by
>>>> java.lang.NoClassDefFoundError: org/apache/log4j/Category)
>>>> at
>>>> org.apache.commons.logging.impl.LogFactoryImpl.getLogConstru ctor(LogFactoryImpl.java:413)
>>>> at
>>>> org.apache.commons.logging.impl.LogFactoryImpl.newInstance(L ogFactoryImpl.java:529)
>>>> ... 29 more
>>>> Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Category
>>>> at java.lang.Class.getDeclaredConstructors0(Native Method)
>>>> at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
>>>> at java.lang.Class.getConstructor0(Unknown Source)
>>>> at java.lang.Class.getConstructor(Unknown Source)
>>>> at
>>>> org.apache.commons.logging.impl.LogFactoryImpl.getLogConstru ctor(LogFactoryImpl.java:410)
>>>> ... 30 more
>>>>
>>>
>>>
>>
>>
>
>
|
|
|
Re: No suitable Log constructor error [message #102885 is a reply to message #91734] |
Sat, 15 December 2007 07:17  |
Eclipse User |
|
|
|
Originally posted by: scof.optonline.net
I'm experiencing a similar problem. Very insidious; I struggled for a long time before stumbling on this thread. My ultimate solution was to create a fragment for the commons-logging bundle.
You've entered a bug for this against eclipse, but it seems to me this is a commons-logging issue rather than a eclipse one, no?
|
|
|
Powered by
FUDForum. Page generated in 0.03367 seconds