SLF4J: Не вдалося завантажити клас "org.slf4j.impl.StaticLoggerBinder"


619

Мою програму потрібно розгорнути як на tcServer, так і на WebSphere 6.1. Цей додаток використовує ehCache і тому вимагає slf4j як залежність. Як результат, я додав банку "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.

Хтось має ідеї, що може статися тут?


Ця стаття вирішила мою проблему
Бухгалтер,

Відповіді:


517

У мене була така ж проблема з WebSphere 6.1. Як зазначав Секі, у WebSphere використовувались багато банок, і одна з них вказувала на старішу версію slf4j.

Резервний випуск No-Op відбувається лише з slf4j -1.6+, тому все, що є старше, може призвести до виключення та зупинить розгортання.

На сайті SLf4J є документація, яка це вирішує. Я слідував за цим і додав slf4j-simple-1.6.1.jarдо своєї заяви разом з slf4j-api-1.6.1.jarякою я вже мав.

Це вирішило моє питання. Сподіваюся, це допомагає іншим, хто має цю проблему.


4
Так, помилка стосується і згадуваних тут - slf4j.org/manual.html Але я отримую нову помилку зараз - спричинено: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
Девід Блейн

1
"Як підкреслював Цекі, у WebSphere використовувалися тонни банок, і одна з них вказувала на старішу версію slf4j." - Стільки для Мейвена піклується про залежності! Який жарт.
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. Натомість я використовую реалізацію, додавши jar slf4j-log4j12 та log4j, що добре працює для мене.
flyrain

379

Це для тих, хто прийшов сюди з пошуку Google.

Якщо ви використовуєте 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здається , цього буде достатньо (це було для мене).
Івайло Славов

22
AFAIK у вас повинно бути лише 1 імпл slf4j, тобто або slf4j-log4j12 АБО slf4j-просто, не обидва.
Ondra Žižka

@Igor KatKov це працює лише на локальній машині, але отримуючи таку ж помилку на Jenkins, не знаючи, що йде не так. Ви можете, будь ласка, уточнити
vikramvi

slf4j-api вимагає конфігурації, яка недоступна під час першого запуску (і не редагували жодні файли конфігурації). Використання slf4j-simple дозволить вам використовувати базовий Logger без конфігурації файлів, окрім WYSIWYG. Потім ви зможете повернутися до slf4j-api, як тільки ви навчилися налаштовувати файли та налаштовувати вихід Logger, як вам подобається. (Ще
дізнаюсь,

53

Просто додайте це до свого pom.xml :

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

3
Рішення працювало для мене; Варто вказати на документацію (де я знайшов пояснену
Вітольд Качурба

2
нічого іншого, окрім цього, це працювало для мене, використовуючи простий приклад виробника кафки. дякую купу!
Вірен

@WitoldKaczurba має рацію. У мене виникло те саме питання, коли я використовував залежність, використовуючи maven. Я просто гуглив і перейшов до slf4j.org/codes.html#StaticLoggerBinder, де вказано проблему та її рішення. Я використовував slf4j-api версії 1.7.25. Після перевірки документації на згаданому посиланні я просто використав <dependence> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</version> </dependency>і проблема була вирішена
Mohammad Anas

Я не розумію сенсу використання Maven, якщо бібліотеки, яким потрібен деякий реєстратор (наприклад, Руль, для якого потрібен slf4j), не заявляють про це у своїй пом. У будь-якому випадку: дякую.
Ерік Думініл

У моєму випадку це не рішення. Приховати лише інформацію про те, що існують несумісні версії slf4j і log4j або іншого плагіна.
hariprasad

42

Вам потрібно додати наступний файл jar на своєму classpath : slf4j-simple-1.6.2.jar. Якщо у вас його немає, завантажте його. Будь ласка, зверніться до http://www.slf4j.org/codes.html#multiple_bindings


Але у мене немає такої баночки на моєму класі tcServer, саме це мене бентежить. Я не розумію, як мені не потрібна додаткова банка в tcServer, але я роблю в WebSphere
JJ180

1
Працювало для мене і набагато простіше, ніж прийнята відповідь. Версія 1.7.7 теж працювала.
La-comadreja

1
Я вже мав jul-to-slf4jу своєму pom.xmlі тільки що додав slf4j-simpleраніше, і це працює чудово.
slugmandrew

Як просто додати jar файл до classpath?
Dean013

Будь ласка, чи можете ви пояснити мені, що таке шлях до класу? де? Я не розумію
Rose8525

36

Тут досить декількох відповідей, рекомендуємо додати файл slf4j-simple до файлу Maven pom. Можливо, ви хочете перевірити найновішу версію.

На https://mvnrepository.com/artifact/org.slf4j/slf4j-simple ви знайдете останню версію SLF4J Simple Binding. Виберіть ту, яка вам найбільше підходить (все-таки 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
змусили

Дякую, що вказали на це. Я відповідно видалив тег сфери з своєї відповіді. Це була проблема вирізання та вставки - посилання, яке я надаю, забезпечує бета-залежність таким чином.
Вольфганг Фаль

27

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

Деякі дурні помилки ламають нам голову;)


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, це зробить трюк.


6
або додайте залежність у свою пом <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, просто завантажте бібліотеку та покладіть її на свій класний проект.

Тут ви можете побачити деталі: http://www.mkyong.com/wicket/java-lang-classnotfoundexception-org-slf4j-impl-staticloggerbinder/


1
Також для користувачів maven я виявив, що мені потрібно додати наступне в pom.xml, яке також автоматично приводить в систему ядро ​​для зворотного зв'язку: <dependency> <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, потрібно додати класичний зворотний зв'язок. Інший підхід до зміни <artifactId>slf4j-simple</artifactId>від <artifactId>slf4j-api</artifactId>також робить роботу. Це проілюстровано тут
Abhijeet

10

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


2
Додавання зворотного зв'язку зафіксувало це для мене. Я скинув останню класику зворотного зв'язку в pom (1.1.7), і вона не вдалася, оскільки залежність slf4j була занадто стара (1.6.2). Зниження рівня повернення до 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


Ваше рішення було єдиним, яке працювало на мене, дякую!
Еденшо

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>

4

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


Дякую, я перевірив свій WebSphere 6.1 classpath і не бачу жодної іншої версії slf4j, наприклад, я здійснив пошук у своїй файловій системі WebSphere для jar- slf4j, і я повернув лише свою версію 1.6. Чи знаєте ви, чи WebSphere постачається в комплекті з slf4j?
JJ180

Можливо все, але я був би дуже здивований, якби WebSphere прийшов у комплекті з slf4j-api. Зварювальні пучки slf4j-api.jar. Ви використовуєте Weld?
Чекі

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.

Не дивлячись на те, що я спробував з усіма запропонованими банками з доповненням, наприклад slf4j-log4j12-1.7.5.jar, slf4j-simple-1.7.5повідомлення про помилку все ще зберігається Проблема остаточно була вирішена, коли я додав slf4j-jdk14-1.7.5.jarдо явових губ.

Отримайте весь пакет slf4j на веб- сайті http://www.slf4j.org/download.html


4

Будь ласка, додайте наступні залежності, щоб вирішити цю проблему.

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

Я просто включив першу залежність - як вказувалося в іншій відповіді - і вона працює. Обидві залежності не вирішують проблеми для мене.
RubioRic

І хочете використовувати місцевий maven замість комплекту Maven від Intellij.
Абдул Гаффар

4

В якості альтернативи баночному включенню та чистому розчину Maven, ви можете включити його з maven баночному with 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файлу.


3

Я працюю над проектом Struts2 + Spring. Тож потрібна залежністьslf4j-api-1.7.5.jar .

Якщо я запускаю проект, я отримую на зразок помилок

Не вдалося завантажити клас "org.slf4j.impl.StaticLoggerBinder"

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

Тому додайте цю банку у свій проект, щоб вирішити проблему.


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


Моя думка

Я рекомендую " Зворотній зв'язок", оскільки він є наступником 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 )


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

Помістіть вищезазначену залежність у файл pom.xml


Але не забудьте перевірити останню версію.
користувач1053510


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 на шляху до класу повинно вирішити проблему.

Просто додайте цю банку разом із slf4j api.jar у свій класний шлях, щоб зробити все можливим. Удачі



1

зіткнувся з тією ж проблемою і на payara 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 Петро


1
Ви пропонуєте користувачам повернутися до журналу JDK1.4, щоб вирішити проблему класного шляху? Подивіться також на цю статтю FAQ: slf4j.org/faq.html#need_to_recompile
mwhs

0

Я використовую Jena, і я додаю товаришську залежність до 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 "", але класичний зворотний зв'язок показує більш детальну інформацію.

Офіційний документ


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 на шляху класу повинно вирішити проблему. SINCE 1.6.0 Що стосується SLF4J версії 1.6, за відсутності прив'язки, SLF4J за замовчуванням реалізує реєстратор без операцій (NOP). Якщо ви несете відповідальність за упаковку програми та не піклуєтесь про ведення журналів, то розміщення slf4j-nop.jar на шляху класу вашої програми позбудеться цього попередження. Зауважте, що вбудовані компоненти, такі як бібліотеки або рамки, не повинні оголошувати залежність від будь-якого зв'язування SLF4J, а залежати лише від slf4j-api.

рішення: Я додав до свого проекту за допомогою Maven research on 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>

0

Ось мої 5 копійок ...

У мене були ті ж проблеми під час запуску тестів. Тому я це виправив, додавши реалізацію лише для виконання тестового часу. Я використовую gradle для цього проекту.

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

testRuntimeOnly group: 'ch.qos.logback', назва: 'logback-classic', версія: '1.2.3'


0

Для мене проблемою було: Використовуючи сплячий режим, я побачив, що він уже використовує slf4j, і він вже був на моєму уроці, тому вирішив його використовувати. Наступний крок - додавання імлементатора для slf4j, тому я додав maven:

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

Але це не вдалося помилково! SLF4J: Не вдалося завантажити клас "org.slf4j.impl.StaticLoggerBinder"

Рішення полягало в тому, що залежність від slf4j в сплячому режимі була версія 1.7.26 , і я додав незначну залежність версії 1.7.25 . Тож коли я це зафіксував - все стало нормально


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

Я використовую bulkrequest і я видаляю цю помилку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.