Пакет Карафа с использованием ch.qos.logback, log4j org / apache / logging / log4j / util / ReflectionUtil - PullRequest
0 голосов
/ 27 марта 2020

У меня есть проект osgi 6.0.0, который использует logback и slf4j.

В настоящее время я реализую пакет, который зависит от внешнего jar, который использует 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.getErowAmpLog (Pable) . java: 76) в орг. apache .karaf.log.core.internal.KarafLogEvent. (KarafLogEvent. java: 45) в орг. apache .karaf.log.core.internal.LogServiceImpl. doAppend (LogServiceImpl. java: 177) по адресу org.ops4j.pax.logging.l og4j2.internal.PaxAppenderProxy.doAppend (PaxAppenderProxy. java: 65) в org.ops4j.pax.logging.log4j2.appender.PaxOsgiAppender.append (PaxOsgiAppender. java: 82) в org. apache .log. 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. * 1034 : 433) в орг. apache .logging.log4j.core.config.LoggerConfig.log (LoggerConfig. java: 417) в орг. apache .logging.log4j.core.config.LoggerConfig.log (LoggerConfig . java: 403) в орг. apache .logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log (Awai tCompletionReliabilityStrategy. java: 63) в орг. 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.PaxLogerImpl PaxLoggerImpl. java: 192) в org.ops4j.pax.logging.internal.TrackingLogger.error (TrackingLogger. java: 96) в org.ops4j.pax.logging.slf4j.Slf4jLogger.error (Slf4jLogger *. *: 953) в орг. apache .karaf.shell.support.ShellUtil.logException (ShellUtil. java: 152) в орг. apache .karaf.shell.impl.console.ConsoleSessionImpl.doExecute (ConsoleSessionImpl. java: 474) в орг. apache .karaf.shell.impl.console.ConsoleSessionImpl.run (ConsoleSessionImpl. java: 407) в java .lang.Thread.run (поток. java: 748) Вызывается: java .lang.ClassNotFoundException: org. apache .logging.log4j.util.ReflectionUtil не найден org. apache .logging.log4j.api [112] в org. apache. Fe lix.framework.BundleWiringImpl.findClassOrResourceByDelegation (BundleWiringImpl. java: 1639) в org. apache .felix.framework.BundleWiringImpl.access $ 200 (BundleWiringImpl. java: 1063) или даже больше. .BundleWiringImpl $ BundleClassLoader.loadClass (BundleWiringImpl. java: 2053) в java .lang.ClassLoader.loadClass (ClassLoader. java: 357) в орг. . java: 1414) в орг. apache .felix.framework.BundleWiringImpl.searchImports (BundleWiringImpl. java: 1660) в орг. : 1590) в орг. apache .felix.framework.BundleWiringImpl.access $ 200 (BundleWiringImpl. java: 80) в орг. apache .felix.framework.BundleWiringImpl $ BundleClassLoader.loadClass * BundleWiringImpl: BundleWiringImpl: 2053) в java .lang.ClassLoader.loadClass (ClassLoader. java: 357) ... еще 27

1 Ответ

0 голосов
/ 30 марта 2020

Я нашел решение, класс org / apache / logging / log4j / util / ReflectionUtil больше не существует с 2.9.0. мне просто нужно использовать версию ниже этой

...