使用ch.qos.logback的Karaf捆绑包,log4j org / apache / logging / log4j / util / ReflectionUtil

问题描述 投票:-1回答:1

我有一个使用logback和slf4j的osgi 6.0.0项目。

目前,我正在实现一个捆绑包,该捆绑包取决于使用org.apache.logging.log4j

在命令行执行期间,我的karaf控制台通过显示此错误而冻结了捆绑包:

线程“ Karaf本地控制台用户karaf”中的异常java.lang.NoClassDefFoundError:org / apache / logging / log4j / util / ReflectionUtil在org.apache.logging.log4j.core.impl.ThrowableProxy。(ThrowableProxy.java:145)在org.apache.logging.log4j.core.impl.ThrowableProxy。(ThrowableProxy.java:125)在org.apache.logging.log4j.core.impl.MutableLogEvent.getThrownProxy(MutableLogEvent.java:338)在org.ops4j.pax.logging.log4j2.internal.PaxLoggingEventImpl.getThrowableStrRep(PaxLoggingEventImpl.java:76)在org.apache.karaf.log.core.internal.KarafLogEvent。(KarafLogEvent.java:45)在org.apache.karaf.log.core.internal.LogServiceImpl.doAppend(LogServiceImpl.java:177)在org.ops4j.pax.logging.log4j2.internal.PaxAppenderProxy.doAppend(PaxAppenderProxy.java:65)在org.ops4j.pax.logging.log4j2.appender.PaxOsgiAppender.append(PaxOsgiAppender.java:82)在org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)在org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)在org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)在org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)在org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:448)在org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:433)在org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:417)在org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:403)在org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63)在org.apache.logging.log4j.core.Logger.logMessage(Logger.java:146)在org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.doLog0(PaxLoggerImpl.java:151)在org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.doLog(PaxLoggerImpl.java:144)在org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.error(PaxLoggerImpl.java:192)在org.ops4j.pax.logging.internal.TrackingLogger.error(TrackingLogger.java:96)在org.ops4j.pax.logging.slf4j.Slf4jLogger.error(Slf4jLogger.java:953)在org.apache.karaf.shell.support.ShellUtil.logException(ShellUtil.java:152)在org.apache.karaf.shell.impl.console.ConsoleSessionImpl.doExecute(ConsoleSessionImpl.java:474)在org.apache.karaf.shell.impl.console.ConsoleSessionImpl.run(ConsoleSessionImpl.java:407)在java.lang.Thread.run(Thread.java:748)由以下原因引起:java.lang.ClassNotFoundException:org.apache.logging.log4j.api未找到org.apache.logging.log4j.util.ReflectionUtil [112]在org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639)at org.apache.felix.framework.BundleWiringImpl.access $ 200(BundleWiringImpl.java:80)在org.apache.felix.framework.BundleWiringImpl $ BundleClassLoader.loadClass(BundleWiringImpl.java:2053)在java.lang.ClassLoader.loadClass(ClassLoader.java:357)在org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1414)在org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1660)在org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1590)at org.apache.felix.framework.BundleWiringImpl.access $ 200(BundleWiringImpl.java:80)在org.apache.felix.framework.BundleWiringImpl $ BundleClassLoader.loadClass(BundleWiringImpl.java:2053)在java.lang.ClassLoader.loadClass(ClassLoader.java:357)... 27更多

log4j bundle logback apache-karaf
1个回答
0
投票

我找到了解决方案,从2.9.0版开始,类org / apache / logging / log4j / util / ReflectionUtil不再存在。我只需要使用低于此版本的版本即可

© www.soinside.com 2019 - 2024. All rights reserved.