SLF4J: не удалось загрузить класс «org.slf4j.impl.StaticLoggerBinder»

620

Мое приложение должно быть развернуто как на tcServer, так и на WebSphere 6.1. Это приложение использует ehCache и поэтому требует slf4j в качестве зависимости. В результате я добавил jar-файл slf4j-api.jar (1.6) в свой пакет военных файлов.

Приложение прекрасно работает в tcServer за исключением следующей ошибки:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Однако при развертывании в WebSphere я получаю java.lang.NoClassDefFoundError: org.slf4j.impl.StaticLoggerBinder .

Также сопровождается Failed to load class "org.slf4j.impl.StaticMDCBinder"

Я проверил пути к классам обоих серверов приложений, и нет другого jar slf4j.

У кого-нибудь есть идеи, что здесь может происходить?

JJ180
источник
Эта статья решила мою проблему
Бухгалтер م

Ответы:

517

У меня была такая же проблема с WebSphere 6.1. Как указал Ceki, WebSphere использовал тонны фляг, и один из них указывал на старую версию slf4j.

Отказ No-Op происходит только с slf4j -1.6+, поэтому все, что старше этого, вызовет исключение и остановит ваше развертывание.

На сайте SLf4J есть документация, которая решает эту проблему . Я проследил за этим и добавил slf4j-simple-1.6.1.jarв свое заявление, slf4j-api-1.6.1.jarкоторое у меня уже было.

Это решило мою проблему. Надеюсь, это поможет другим, у кого есть эта проблема.

Prasanna
источник
4
Да, ошибка идет так же, как упомянуто здесь - slf4j.org/manual.html Но теперь я получаю новую ошибку - Причины : java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
Дэвид Блейн
1
«Как указал Ceki, WebSphere использовал тонны банок, и один из них указывал на старую версию slf4j». - Так много для Maven, заботящегося о зависимостях! Ну и шутка.
AndroidDev
167
Привет, вы, пользователи MAVEN: mvnrepository.com/artifact/org.slf4j/slf4j-simple/1.6.2
Серхио,
2
Я использую 1.7 и имеет ту же проблему. Я добавил slf4j-simple-1.7.jar и теперь проблема решена.
littletiger
1
Это не работает для меня. Простой jar-файл slf4j не принимает свойства log4j.properties. Вместо этого я использую реализацию, добавив slf4j-log4j12 и log4j jar, что хорошо работает для меня.
flyrain
379

Это для тех кто пришел сюда из гугл поиска.

Если вы используете Maven, просто добавьте следующее

   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <version>1.7.5</version>
   </dependency>
   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
       <version>1.7.5</version>
   </dependency>

Или

   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <version>1.7.5</version>
   </dependency>
   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
       <version>1.6.4</version>
   </dependency>
Игорь Катков
источник
1
Есть ли причина slf4j-simpleне быть той же версией, что и slf4j-api? Вероятно, они будут хорошо работать вместе, но я думаю, что в целом безопаснее и эффективнее использовать их в одной и той же версии. Кроме того, если вам нужно включить ведение журнала только для консоли, например, при запуске модульных тестов, то этого slf4j-simpleбудет достаточно (хотя это было для меня).
Ивайло Славов
23
AFAIK у вас должно быть только 1 значение slf4j, т.е. либо slf4j-log4j12, либо slf4j-simple, а не оба.
Ондра Жижка
@Igor KatKov это работает только на локальной машине, но Дженкинс получает ту же ошибку, не зная, что происходит не так. не могли бы вы уточнить
vikramvi
slf4j-api требует настройки, которая недоступна при первом запуске (и не редактировала никакие файлы конфигурации). Использование slf4j-simple позволит вам использовать базовый Logger без настройки каких-либо файлов, кроме WYSIWYG. Затем вы можете вернуться к slf4j-api, как только вы научитесь настраивать файлы и настраивать вывод Logger так, как вам нравится. (Все еще учусь, где они есть и как их редактировать)
chipps
53

Просто добавьте это в ваш pom.xml :

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>1.7.21</version>
</dependency>
Бенни Нойгебауэр
источник
3
Решение сработало для меня; Стоит указать на документацию (где я нашел объясненную ошибку): slf4j.org/codes.html#StaticLoggerBinder
Витольд Качурба
2
ничего, кроме этого, у меня не получилось, пока работал простой пример с производителем кафки. огромное спасибо!
Вирен
@ Витольд Кацурба прав. У меня была такая же проблема при использовании зависимости с помощью Maven. Я просто погуглил и зашел на slf4j.org/codes.html#StaticLoggerBinder, где говорится о проблеме и ее решении. Я использовал slf4j-api версии 1.7.25. После проверки документации по указанной ссылке я просто использовал <зависимость>, <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</version> </dependency>и проблема была решена
Мохаммед Анас
Я не понимаю смысла использования Maven, если библиотеки, которые нуждаются в каком-либо логгере (например, Handlebars, которому нужен slf4j), не объявляют его в своем pom. В любом случае, благодарю Вас.
Эрик Думинил
В моем случае это не решение проблемы. Только скрыть информацию, что есть несовместимые версии slf4j и log4j или другого плагина.
Харипрасад
42

Вам необходимо добавить следующие JAR - файл в вашем пути к классам: slf4j-simple-1.6.2.jar. Если у вас его нет, пожалуйста, загрузите его. Пожалуйста, обратитесь к http://www.slf4j.org/codes.html#multiple_bindings

Ashish
источник
Но у меня нет этой банки на моем пути к классу tcServer, это то, что меня смущает. Я не понимаю, как мне не нужен дополнительный jar в tcServer, но я делаю это в WebSphere
JJ180
1
Сработало для меня, и намного проще, чем принятый ответ. Версия 1.7.7 тоже работала.
La-comadreja
1
Я уже имел jul-to-slf4jв моем pom.xmlи только что добавил slf4j-simpleв ранее, и это прекрасно работает.
Слагмандрю
Как просто добавить файл jar в путь к классам?
Dean013
Пожалуйста, не могли бы вы объяснить мне, что такое путь класса? где? Я не понимаю
Rose8525
36

Несколько ответов здесь рекомендуют добавить зависимость slf4j-simple в файл maven pom. Вы можете проверить наличие самой последней версии.

На https://mvnrepository.com/artifact/org.slf4j/slf4j-simple вы найдете последнюю версию простой привязки SLF4J. Выберите тот, который подходит вам лучше (по-прежнему 1.7.26 из 2019-02 - это стабильная версия по состоянию на 2019-07) и включите его в ваш pom.xml.

Для вашего удобства здесь показаны некоторые зависимости, но они могут быть неактуальными, когда вы читаете это!

Альфа-версия 2019-10

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version>2.0.0-alpha1</version>
 </dependency>

Бета-версия февраля 2019

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.8.0-beta4</version>
</dependency>

Стабильная версия 2019-12

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version>1.7.30</version>
</dependency>

Я удалил часть теста области благодаря комментарию ниже.

Вольфганг Фаль
источник
6
почему ты используешь <scope>test</scope>? По моему опыту, мне, по крайней мере, нужна runtimeобласть, чтобы убедиться, slf4j-simpleчто путь к классу находится. Любопытно, как ты заставил это работать только с testприцелом ...
ecoe
Спасибо за указание на это. Я удалил тег видимости из своего ответа соответственно. Это была проблема «вставь и вставь» - ссылка, которую я предоставляю, обеспечивает бета-зависимость таким образом.
Вольфганг Фал
27

Я столкнулся с той же ошибкой. Я настроил slf4j-api, slf4j-log4j12 и log4j в моей локальной разработке. Все настройки были в порядке, но зависимость slf4j-log4j12, которую я скопировал из mvnrepository, имела тестовую область <scope>test</scope>. Когда я удалил это все хорошо.

Иногда глупые ошибки ломают нам голову;)

thangaraj
источник
1
Бесконечно благодарен! У меня была такая же проблема, и я собирался отказаться от нее, пока не нашел ваш пост!
Эргодин
1
Это помогло мне также
cod3min3
27

Когда-нибудь мы должны увидеть записку от предупреждения SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details..

Это происходит, когда в пути к классу не найдено подходящей привязки SLF4J.

Вы можете найти причину, по которой приходит это предупреждение.
Добавив одну из банку из *slf4j-nop.jar,slf4j-simple.jar , slf4j-log4j12.jar, slf4j-jdk14.jarили logback-classic.jar*в пути класса должно решить эту проблему.

compile "org.slf4j:slf4j-simple:1.6.1"

например, добавьте приведенный выше код к вашему build.gradleили соответствующему кpom.xml для проекта maven.

Эдвард
источник
15

положить файл slf4j-log4j12-1.6.4.jarв classpath сделает свое дело.

stones333
источник
6
или добавьте зависимость в ваш pom <dependency> <groupId> org.slf4j </ groupId> <artifactId> slf4j-log4j12 </ artifactId> </ dependency>
enkor
11

Если вы используете maven для управления зависимостями, вы можете просто добавить следующую зависимость в pom.xml

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.5.6</version>
</dependency>

Для пользователей не Maven Просто скачайте библиотеку и поместите ее в classpath вашего проекта.

Здесь вы можете увидеть подробности: http://www.mkyong.com/wicket/java-lang-classnotfoundexception-org-slf4j-impl-staticloggerbinder/

Шохан
источник
1
Также для пользователей maven я обнаружил, что мне нужно добавить следующее в pom.xml, который также автоматически вводит logback-core: <зависимость> <groupId> ch.qos.logback </ groupId> <artifactId> logback-classic </ artifactId> <version> 1.0.9 </ version> </ dependency>
Пол
2
This is not an error. This message tells you that you do not have any logger implementation (such as e.g. Logback) added in classpath, and therefore NOP (No Operation) log Ищите комментарий sarxos как упомянуто @Paul, нужно добавить logback-classic. Другой подход к изменению <artifactId>slf4j-simple</artifactId>от <artifactId>slf4j-api</artifactId>также делает работу. Это иллюстрировано здесь
Abhijeet
10

SLF4j - это абстракция для различных каркасов логирования . Следовательно, помимо наличия slf4j, вы должны включить в ваш путь к классам любой из ваших каркасов ведения журналов, таких как log4j или logback (и т. Д.).
Чтобы иметь идею, обратитесь к Первому шагу ребенка в http://logback.qos.ch/manual/introduction.html

Анвер Садхат
источник
2
Добавление logback исправило это для меня. Я поместил последнюю версию logback classic в pom (1.1.7), и она не удалась, поскольку зависимость slf4j была слишком старой (1.6.2). Понижение logback до 1.0.0 и оставление slf4j на 1.6.x работало так же, как и обновление slf4j до 1.7.20 и оставление logback на 1.1.7.
ECDragon
5

Slf4j - это фасад для базовых каркасов журналирования, таких как log4j, logback, java.util.logging.

Чтобы соединиться с базовыми платформами, slf4j использует привязку.

  • log4j - slf4j-log4j12-1.7.21.jar
  • java.util.logging - slf4j-jdk14-1.7.21.jar и т. д.

Вышеуказанная ошибка выдается, если отсутствует переплет банок. Вы можете скачать эту банку и добавить ее в classpath.

Для Maven зависимости,

<dependency> 
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.21</version>
</dependency>

Эта зависимость в дополнение к slf4j-log4j12-1.7.21.jar, она будет тянуть как slf4j-api-1.7.21.jar, так и log4j-1.2.17.jar в ваш проект

Ссылка: http://www.slf4j.org/manual.html

венкатеш манкена
источник
Ваше решение было единственным, которое сработало для меня, спасибо!
Edenshaw
5

Я столкнулся с подобной проблемой в приложениях Spring-boot-2 с библиотекой Java 9.

Добавление следующей зависимости в моем pom.xml решило проблему для меня:

    <dependency>
        <groupId>com.googlecode.slf4j-maven-plugin-log</groupId>
        <artifactId>slf4j-maven-plugin-log</artifactId>
        <version>1.0.0</version>
    </dependency>
KayV
источник
4

В случае Websphere у вас есть более старая версия slf4j-api.jar, 1.4.x. или 1.5.х где-то валяется. Поведение, которое вы наблюдаете на tcServer, то есть переключении на NOP, происходит в slf4j версий 1.6.0 и новее. Убедитесь, что вы используете slf4j-api-1.6.x.jar на всех платформах, и что более старая версия slf4j-api не размещена в пути к классам.

Ceki
источник
Спасибо, я проверил свой путь к классу WebSphere 6.1 и не вижу никакой другой версии slf4j, например, я выполнил поиск в своей файловой системе WebSphere для jar slf4j, и мне вернули только мою версию 1.6. Вы знаете, поставляется ли WebSphere с slf4j?
JJ180
Все возможно, но я был бы очень удивлен, если бы WebSphere шел в комплекте с slf4j-api. Сварные пучки slf4j-api.jar. Вы используете сварку?
Ceki
4

Я попал в эту проблему, когда я получаю следующую ошибку:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

когда я использовал slf4j-api-1.7.5.jarв моем libs.

Inspite я попытался со всем предложенным комплемента банки, как slf4j-log4j12-1.7.5.jar, slf4j-simple-1.7.5сообщение об ошибке по- прежнему сохраняется. Проблема, наконец, была решена, когда я добавилslf4j-jdk14-1.7.5.jar в Java-библиотеки.

Получить весь пакет slf4j можно по адресу http://www.slf4j.org/download.html.

user278049
источник
4

Пожалуйста, добавьте следующие зависимости в pom для решения этой проблемы.

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>1.7.25</version>
  <scope>test</scope>
</dependency>

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.25</version>
</dependency>
gowthamjs23
источник
Я просто включил первую зависимость - как указано в другом ответе - и она работает. Обе зависимости не решают проблему для меня.
RubioRic
И хотите использовать локальный maven вместо Bundled maven из Intellij.
Абдул Гаффар
4

Как альтернатива включению банок и чистым решениям maven, вы можете включить его из maven с gradle.

Пример для версии 1.7.25

// https://mvnrepository.com/artifact/org.slf4j/slf4j-simple
api group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25'

Поместите это в зависимости вашего build.gradleфайла.

Vrakfall
источник
3

Я работаю в проекте Struts2 + Spring. Так что нужна зависимостьslf4j-api-1.7.5.jar .

Если я запускаю проект, я получаю ошибку как

Не удалось загрузить класс "org.slf4j.impl.StaticLoggerBinder"

Я решил свою проблему, добавив slf4j-log4j12-1.7.5.jar .

Поэтому добавьте эту банку в свой проект, чтобы решить проблему.

softmage99
источник
3

Как SLF4J Руководство государств

Простой фасад ведения журнала для Java (SLF4J) служит простым фасадом или абстракцией для различных сред ведения журналов, таких как java.util.logging, logback и log4j.

а также

Предупреждение исчезнет, ​​как только вы добавите привязку к вашему пути к классам.

Поэтому вы должны выбрать, какую привязку вы хотите использовать.

NoOp привязка (slf4j-nop)

Привязка для NOP, молча отбрасывая все записи.

Проверьте свежую версию на https://search.maven.org/search?q=g:org.slf4j%20AND%20a:slf4j-nop&core=gav

Простое связывание (slf4j-simple)

выводит все события в System.err. Печатаются только сообщения уровня INFO и выше. Эта привязка может быть полезна в контексте небольших приложений.

Проверьте свежую версию на https://search.maven.org/search?q=g:org.slf4j%20AND%20a:slf4j-simple&core=gav

Привязки для каркасов ведения журналов (java.util.logging, logback, log4j)

Вам нужна одна из этих привязок, если вы собираетесь записывать журнал в файл.

См. Описание и инструкции по адресу https://www.slf4j.org/manual.html#projectDep.


Мое мнение

Я бы порекомендовал Logback, потому что он является преемником log4j проекта .

Проверьте последнюю версию привязки для этого на https://search.maven.org/search?q=g:ch.qos.logback%20AND%20a:logback-classic&core=gav

Вы получаете консольный вывод из коробки, но если вам нужно записать логи в файл, просто поместите FileAppenderконфигурацию в src/main/resources/logback.xmlили src/test/resources/logback-test.xmlпросто так:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type
             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>logs/logs.log</file>

        <encoder>
            <pattern>%date %level [%thread] %logger{10} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="debug">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>

    <logger level="DEBUG" name="com.myapp"/>
</configuration>

(Подробное описание см. В руководстве: https://logback.qos.ch/manual/configuration.html ).

Lu55
источник
3
     <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.21</version>
    </dependency>

Поместите вышеупомянутую зависимость в файл pom.xml

Аджай
источник
Но не забудьте проверить последнюю версию.
user1053510
2

Я добавил эту зависимость для решения этой проблемы:

https://mvnrepository.com/artifact/org.slf4j/slf4j-simple/1.7.25
Амадо Саладино
источник
1

Согласно официальной документации SLF4J

Не удалось загрузить класс org.slf4j.impl.StaticLoggerBinder

Это предупреждение появляется, когда класс org.slf4j.impl.StaticLoggerBinder не может быть загружен в память. Это происходит, когда в пути к классу не найдено подходящей привязки SLF4J. Помещение одной (и только одной) из slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar или logback-classic.jar в путь к классам должно решить эту проблему.

Просто добавьте этот jar вместе с slf4j api.jar в ваш classpath, чтобы добиться цели. Удачи

Roushan
источник
1

Я решаю это, добавив эту библиотеку: slf4j-simple-1.7.25.jar Вы можете скачать это на официальном веб-сайте https://www.slf4j.org/download.html

Луис Манрике
источник
1

столкнулся с такой же проблемой на паяре 5.191

jcl-over-slf4j вместе с slf4j-log4j12 решили проблему

<properties>
  <slf4j.version>1.7.29</slf4j.version>
</properties>

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>${slf4j.version}</version>
  <type>jar</type>
</dependency> 

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>jcl-over-slf4j</artifactId>
  <version>${slf4j.version}</version>
</dependency>        

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>${slf4j.version}</version>
</dependency>
тельман шахбазов
источник
0

Я знаю, что этот пост немного староват, но в случае, если кто-то еще столкнется с этой проблемой:

Добавьте slf4j-jdk14-XXXjar к CLASSPATH (где XXX - номер версии - например, slf4j-jdk14-1.7.5.jar).

HTH Питер

Midiman
источник
1
Вы предлагаете пользователям вернуться к ведению журнала JDK1.4 для решения проблемы с classpath? Также посмотрите эту запись FAQ: slf4j.org/faq.html#need_to_recompile
mwhs
0

Я использую Йену, и я добавляю стипендию зависимость в pom.xml

<dependency> 
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.0.13</version>
</dependency>

Я пытаюсь добавить slf4j-simple, но при этом просто исчезает ошибка «SLF4J: Не удалось загрузить класс« org.slf4j.impl.StaticLoggerBinder »», но logback-classic показывает более подробную информацию.

Официальный документ

Пинцзян Ли
источник
0

решение указано на их официальном сайте:

Не удалось загрузить класс org.slf4j.impl.StaticLoggerBinder

Это предупреждение появляется, когда класс org.slf4j.impl.StaticLoggerBinder не может быть загружен в память. Это происходит, когда в пути к классу не найдено подходящей привязки SLF4J. Размещение одного (и только одного) из slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar или logback-classic.jar на пути к классам должно решить эту проблему. С 1.6.0 Начиная с версии 1.6 SLF4J, при отсутствии привязки SLF4J по умолчанию будет использовать регистратор без операций (NOP). Если вы несете ответственность за упаковку приложения и не заботитесь о ведении журнала, то размещение slf4j-nop.jar на пути к классам вашего приложения избавит от этого предупреждающего сообщения. Обратите внимание, что встроенные компоненты, такие как библиотеки или платформы, не должны объявлять зависимость от какой-либо привязки SLF4J, а зависят только от slf4j-api.

Решение: я добавил в свой проект, используя maven исследования по intellij, и выбрал slf4j-jdk14.jar.

Бадр Беллай
источник
0

Скорее всего, ваша проблема была из-за <scope>test</scope>(в некоторых случаях также <scope>provided</scope>), как упоминалось @thangaraj .

Документация гласит:

Эта область указывает, что зависимость не требуется для обычного использования приложения и доступна только для фаз компиляции и выполнения теста. Зависимости теста не являются транзитивными и присутствуют только для путей к классам тестирования и выполнения.

Итак, если вам не нужны зависимости для тестирования, вы можете использовать вместо (то, что вы увидите в mvnrepository ):

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-nop</artifactId>
    <version>1.7.24</version>
    <scope>test</scope>
</dependency>

Без каких-либо областей (по умолчанию будет область компиляции, если не предоставлена ​​другая область):

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
<dependency>  
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-nop</artifactId>
   <version>1.7.25</version>
</dependency>

Это так же, как:

 <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
 <dependency>  
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-nop</artifactId>
   <version>1.7.25</version>
   <scope>compile</scope>
 </dependency>
invzbl3
источник
0

Вот мои 5 центов ...

У меня были те же проблемы при выполнении тестов. Поэтому я исправил это, добавив реализацию только для тестовой среды выполнения. Я использую Gradle для этого проекта.

// https://mvnrepository.com/artifact/ch.qos.logback/logback-classic

Группа testRuntimeOnly: 'ch.qos.logback', имя: 'logback-classic', версия: '1.2.3'

Esteban
источник
0

Для меня проблема заключалась в следующем: используя Hibernate, я увидел, что он уже использовал slf4j, и он уже был в моем classpath, поэтому я решил использовать его. Следующий шаг - добавление imlementor для slf4j, поэтому я добавил в maven:

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-jdk14</artifactId>
        <version>1.7.25</version>
</dependency>

Но это не удалось с ошибкой! SLF4J: не удалось загрузить класс «org.slf4j.impl.StaticLoggerBinder»

Решение было таким: Hibernate-зависимость slf4j была версией 1.7.26 , и я добавил минор-версию 1.7.25 . Так что когда я это исправил - все стало ОК

JESA
источник
0

Я не добавил никаких зависимостей, я просто изменил способ их потребления.

Предварительный код

(Раскомментируйте этот код, если вы используете версию с эластичным поиском <7.0)

IndexRequest indexRequest = new IndexRequest(
  "twitter",
  "tweets",
  id // this is to make our consumer idempotent
).source(record.value(), XContentType.JSON);

Текущий код

IndexRequest indexRequest = new IndexRequest("tweets")
  .source(record.value(), XContentType.JSON)
  .id(id); // this is to make our consumer idempotent

Я использую массовый запрос и с этим я удаляю эту ошибку.

Данте Астудилло
источник