You're absolutely right (about PITA)...

But, I just tried putting the DLL in windows\system32 (which is undesirable
but always works) and it still can't find the class. Could be that this DLL
doesn't work under Windows 7. I'll try to investigate this further. I
realize that this most probably is not a Karaf issue but if any Karaf user
wants to log to Windows event log on Windows 7 perhaps s/he has some advice
to me.

/Bengt

2012/6/28 Achim Nierbeck <[email protected]>

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

Reply via email to