Hello JB,

Just struck me that I'v recently changed to a computer running Windows 7
(used to run on Windows XP). When I install Karaf on Windows XP it works
but when I install the same distribution on Windows 7 it doesn't work. My
guess is that is has to do with the  NTEventLogAppender.dll. Either it does
not support Windows 7 or it has to be located somewhere else than in
Karaf's lib folder.

I would guess that if the loading of NTEventLogAppender.dll fails then the
loading of the class org.apache.log4j.nt.**NTEventLogAppender will also
fail - thus the NoClassDefFoundError.

/Bengt

2012/6/28 Jean-Baptiste Onofré <[email protected]>

> Hi Bengt,
>
> It looks weird, but sounds like classloading change issue.
>
> I gonna try to reproduce and keep you posted.
>
> Regards
> JB
>
>
> On 06/28/2012 11:22 AM, Bengt Rodehav wrote:
>
>> I'm currently updating our applications from using Karaf 2.2.5 to Karaf
>> 2.2.8 and have problems initializing the log system. I use
>> NTEventLogAppender in my org.ops4j.pax.logging.cfg, like this:
>>
>> /log4j.appender.nteventlog=**org.apache.log4j.nt.**NTEventLogAppender/
>> /log4j.appender.nteventlog.**source=${nteventlog.source}/
>> /log4j.appender.nteventlog.**layout=org.apache.log4j.**PatternLayout/
>> /log4j.appender.nteventlog.**layout.ConversionPattern=Time:
>> %d{ISO8601}%n%nSeverity: %p%n%nThread: %t%n%n%m%n/
>> /log4j.appender.nteventlog.**threshold=DEBUG/
>>
>>
>> It used to work fine but now I get this:
>>
>> /2012-06-28 10:12:36,259 | ERROR | s4j.pax.logging) | configadmin
>>                | ?                                   ? | Unexpected
>> problem executing task/
>> /java.lang.**NoClassDefFoundError: Could not initialize class
>> org.apache.log4j.nt.**NTEventLogAppender/
>> /at java.lang.Class.forName0(**Native Method)[:1.6.0_32]/
>> /at java.lang.Class.forName(Class.**java:169)[:1.6.0_32]/
>> /at
>> org.apache.log4j.**OsgiThrowableRenderer.**findClass(**
>> OsgiThrowableRenderer.java:**224)[3:org.ops4j.pax.logging.**
>> pax-logging-service:1.6.7]/
>> /at
>> org.apache.log4j.**OsgiThrowableRenderer.**formatElement(**
>> OsgiThrowableRenderer.java:**134)[3:org.ops4j.pax.logging.**
>> pax-logging-service:1.6.7]/
>> /at
>> org.apache.log4j.**OsgiThrowableRenderer.**doRender(**
>> OsgiThrowableRenderer.java:**105)[3:org.ops4j.pax.logging.**
>> pax-logging-service:1.6.7]/
>> /at
>> org.apache.log4j.**OsgiThrowableRenderer.**doRender(**
>> OsgiThrowableRenderer.java:52)**[3:org.ops4j.pax.logging.pax-**
>> logging-service:1.6.7]/
>> /at
>> org.apache.log4j.spi.**ThrowableInformation.**getThrowableStrRep(**
>> ThrowableInformation.java:89)[**3:org.ops4j.pax.logging.pax-**
>> logging-service:1.6.7]/
>> /at
>> org.apache.log4j.spi.**LoggingEvent.**getThrowableStrRep(**
>> LoggingEvent.java:413)[3:org.**ops4j.pax.logging.pax-logging-**
>> service:1.6.7]/
>> /at
>> org.apache.log4j.**WriterAppender.subAppend(**WriterAppender.java:313)[3:
>> **org.ops4j.pax.logging.pax-**logging-service:1.6.7]/
>> /at
>> org.apache.log4j.**WriterAppender.append(**WriterAppender.java:162)[3:**
>> org.ops4j.pax.logging.pax-**logging-service:1.6.7]/
>> /at
>> org.apache.log4j.**AppenderSkeleton.doAppend(**
>> AppenderSkeleton.java:251)[3:**org.ops4j.pax.logging.pax-**
>> logging-service:1.6.7]/
>> /at
>> org.apache.log4j.helpers.**AppenderAttachableImpl.**
>> appendLoopOnAppenders(**AppenderAttachableImpl.java:**
>> 66)[3:org.ops4j.pax.logging.**pax-logging-service:1.6.7]/
>> /at
>> org.apache.log4j.Category.**callAppenders(Category.java:**
>> 193)[3:org.ops4j.pax.logging.**pax-logging-service:1.6.7]/
>> /at
>> org.apache.log4j.Category.**forcedLog(Category.java:365)[**
>> 3:org.ops4j.pax.logging.pax-**logging-service:1.6.7]/
>> /at
>> org.apache.log4j.Category.log(**Category.java:772)[3:org.**
>> ops4j.pax.logging.pax-logging-**service:1.6.7]/
>> /at
>> org.ops4j.pax.logging.service.**internal.PaxLoggerImpl.error(**
>> PaxLoggerImpl.java:159)[3:org.**ops4j.pax.logging.pax-logging-**
>> service:1.6.7]/
>> /at
>> org.ops4j.pax.logging.service.**internal.**PaxLoggingServiceImpl.log(**
>> PaxLoggingServiceImpl.java:**148)[3:org.ops4j.pax.logging.**
>> pax-logging-service:1.6.7]/
>> /at
>> org.ops4j.pax.logging.service.**internal.**PaxLoggingServiceImpl.access$*
>> *000(PaxLoggingServiceImpl.**java:45)[3:org.ops4j.pax.**
>> logging.pax-logging-service:1.**6.7]/
>> /at
>> org.ops4j.pax.logging.service.**internal.**PaxLoggingServiceImpl$**
>> 1ManagedPaxLoggingService.log(**PaxLoggingServiceImpl.java:**
>> 322)[3:org.ops4j.pax.logging.**pax-logging-service:1.6.7]/
>> /at
>> org.apache.felix.cm.impl.**ConfigurationManager.log(**
>> ConfigurationManager.java:915)**[5:org.apache.felix.**configadmin:1.2.8]/
>> /at
>> org.apache.felix.cm.impl.**ConfigurationManager.**handleCallBackError(**
>> ConfigurationManager.java:**1028)[5:org.apache.felix.**
>> configadmin:1.2.8]/
>> /at
>> org.apache.felix.cm.impl.**ConfigurationManager$**
>> UpdateConfiguration.run(**ConfigurationManager.java:**
>> 1495)[5:org.apache.felix.**configadmin:1.2.8]/
>> /at
>> org.apache.felix.cm.impl.**UpdateThread.run(UpdateThread.**
>> java:104)[5:org.apache.felix.**configadmin:1.2.8]/
>> /at java.lang.Thread.run(Thread.**java:662)[:1.6.0_32]/
>>
>>
>> For some reason the class "org.apache.log4j.nt.**NTEventLogAppender".
>> Looking at the stack trace it seems like the handling of the
>>  configuration is done by the pax-logging-service which also has this
>> class in it's own bundle. The NTEventLogAppender.dll is also required
>> and is located in Karaf's "lib" directory (as it was in the past).
>>
>> Can someone shed some light on this? I'm not sure if it's a Karaf or
>> Pax-logging issue (or simply a mistake I've made)?
>>
>> /Bengt
>>
>>
>>
> --
> Jean-Baptiste Onofré
> [email protected]
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>
>
>

Reply via email to