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 > > >
