Hi Bengt, you have to be carefull where to place such dlls in Win7 due to new "harder" security settings. This can be PITA :)
regards, Achim 2012/6/28 Bengt Rodehav <[email protected]>: > 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 >> >> > -- Apache Karaf <http://karaf.apache.org/> Committer & PMC OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & Project Lead OPS4J Pax for Vaadin <http://team.ops4j.org/wiki/display/PAXVAADIN/Home> Commiter & Project Lead blog <http://notizblog.nierbeck.de/>
