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