SLF4J: не удалось загрузить класс " org.slf4j.осущ.StaticLoggerBinder". ошибка


  • о Eclipse IDE (Индиго,Юнона и Кеплер (32 и 64-битных версий))
  • платформы: Windows,Ubuntu,Mac
  • версия m2e:1.1.0.20120530-0009,1.2.0.20120903-1050, 1.3.0.20130129-0926,
    1.4.0.20130601-0317

Общая информация

вышеуказанная ошибка возникла после обновления m2e до версии 1.1. удалив m2e 1.1 и откатившись до m2e 1.0 все работало нормально. я попытался повторить проблему в Windows и Ubuntu, и это дало мне точно такую же ошибку. Были протестированы многочисленные конфигурации slf4j-api и logback но никто, кажется, не работает.

ошибка появляется в любом проекте maven даже без объявления зависимости slf4j.

  • новый проект Maven--> maven-archetype-quickstart

    и

  • новый проект Maven--> простой проект без выбора архетипа

    результат

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

испытательные среды и конфигурации

протестировано с Eclipse Indigo и Eclipse Juno (32 и 64 бит оба) на Mac, 32 бит на Ubuntu и 64 и 32 бит на Windows. Протестированы свежие установки Juno Classic,Юнона инструменты моделирования,Стандартные Кеплер,Инструменты Моделирования Кеплера и произвел ту же ошибку.

ошибка очистить,установить,тест, развернуть, generate-sources,проверка,compile,пакета,integration-test,проверка и комбинации цели чистые с остальными целями. Он появляется также с параметрами - e и - X. Была попытка удалить репозиторий m2e и загрузить его с нуля, но снова без успеха. Следует сказать, что он был протестирован в 3 различные машины и виртуальная коробка все вышеперечисленные системы, но он произвел ту же ошибку.

пробовал все разные logback конфигурации (от 1.0.4 до 1.0.13), которые разрешают slf4j-api и logback-core зависимости, но все они приводят к одной и той же ошибке:

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

пробовал все разные (от 1.6.1 до 1.7.5 ) slf4j-простой конфигурации.

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

пробовал все разные (от 1.6.1 до 1.7.5 ) log4j-over-slf4j конфигурации.

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>log4j-over-slf4j</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

пробовал все разные (от 1.6.1 до 1.7.5 ) slf4j-jdk14 конфигурации.

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

пробовал все разные (от 1.6.1 до 1.7.5 ) slf4j-log4j12 конфигурации.

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

пробовал slf4j-nop 1.7.5 конфигурации.

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-nop</artifactId>
  <version>1.7.5</version>
  <scope>compile</scope>
</dependency>

и последнее, но не менее важное: журналы сохраняются и печатаются, несмотря на ошибка.


способы воспроизведения ошибки

  • скачать Eclipse Juno, Indigo или Kepler 32 или 64 бит (все установки будут причина та же ошибка).

    • установите интеграцию m2e-Maven для Eclipse

      или

    • обновите версию m2e до 1.1.0.20120530-0009 или 1.2.0.20120903-1050 или 1.3.0.20130129-0926, или 1.4.0.20130601-0317)


    • Выберите File - >New->Other->Maven Project->Нажмите Next - >Select
      maven-archetype-quickstart из каталога - > Finish

      или

    • выберите File - >New - >Other - >Maven Project - > нажмите Next - > выберите Create a simple project (пропустить выбор архетипа)-> Complete Artifact info - > Finish

  • щелкните правой кнопкой мыши на проект - > работает как - >чистая установка (или любая другая цель, упомянутая выше)

первая строка на консоли будет

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.

П. С. существующие проекты будут производить одну и ту же ошибку после обновления М2Э версия для 1.1.0.20120530-0009,1.2.0.20120903-1050,1.3.0.20130129-0926, 1.4.0.20130601-0317


обновления

EDIT

сайт поддержки m2e:

  • вышеуказанный вопрос был размещен как ошибка на сайте поддержки m2e, и ответ от Игоря Федоренко был таков

    нет никаких немедленных планов подавить это сообщение.

    для просмотра вышеуказанной ошибки пожалуйста, обратитесь к официальный сайт поддержки m2e


EDIT 2
  • вышеуказанная индикация ошибки присутствует и m2e версия 1.2.0.20120903-1050


редактировать 3
  • вышеуказанная индикация ошибки присутствует и m2e версия 1.3.0.20130129-0926


EDIT 4
  • вышеуказанная индикация ошибки присутствует и m2e версия 1.4.0.20130601-0317


редактировать 5
                              ***Reported FIXED***
9 104

9 ответов:

Я также могу подтвердить эту ошибку.

решение: использовать внешний maven внутри m2eclipse, вместо него встроен maven.

это делается в три шага:

1 установить maven на локальном компьютере (тест-машина была Ubuntu 10.10)

mvn -- version

Apache Maven 2.2.1 (rdebian-4) Java версия: 1.6.0_20 Java home: /usr/lib/jvm/java-6-openjdk / JRE локаль по умолчанию: de_DE, платформа кодировка: UTF-8 название ОС: "linux" версия: "2.6.35-32-generic" arch: семейство" amd64": "unix"

2 Запустите maven внешне ссылка Как запустить maven из консоли

> cd path-to-pom.xml
> mvn test
    [INFO] Scanning for projects...
    [INFO] ------------------------------------------------------------------------
    [INFO] Building Simple
    [INFO]    task-segment: [test]
    [INFO] ------------------------------------------------------------------------
    [...]
    [INFO] Surefire report directory: [...]/workspace/Simple/target/surefire-reports

    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running net.tverrbjelke.experiment.MainAppTest
    Hello World
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.042 sec

    Results :

    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------------
    [...]

3 внутри m2eclipse: переключатель от встроенный maven к местному maven

  • узнайте, где находится локальный Maven home installation dir (mvn --version, или google для вашего MAVEN_HOME для меня это помогло мне что это /usr/share/maven2)
  • в меню eclipse - > окно - > настройки - >Maven - > установка - > введите эту строку. Затем вы должны были переключиться на новый внешний maven.
  • затем запустите свой проект, например, как "тест maven".

сообщение об ошибке должно исчезнуть.

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

slf4j

Если вы используете Gradle добавить это:

dependencies { 
... 
compile "org.slf4j:slf4j-simple:1.7.9" 
... 
}

была аналогичная ошибка с тем же результатом с Gradle и смог решить ее следующим образом:

//compile 'org.slf4j:slf4j-api:1.7.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.1'

Out-commented строка-это та, которая вызвала вывод ошибки. Я считаю, что вы можете передать это Maven.

вы не указали версию в своем файле зависимостей maven, возможно, поэтому он не выбирает последнюю jar
а также вам нужна еще одна deppendency с slf4j-log4j12 идентификатор артефакта.
включите это в свой файл pom

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

Дайте мне знать, если ошибка все еще не решен
Я также рекомендую вам увидеть этой ссылке

вставьте этот код в pom.XML-файл. Это работает на меня.

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

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

https://bugs.eclipse.org/bugs/show_bug.cgi?id=387064

У меня была аналогичная проблема для моего приложения Spring Boot - Gradle, работающего на Eclipse Luna. Я мог бы решить это вручную, добавив запись в моем проекте .путь к классу

<classpathentry sourcepath="C:/Users/<username>/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.7/3150039466ad03e6ef1c7ec1c2cbb0d96710cf64/slf4j-simple-1.7.7-sources.jar" kind="lib" path="C:/Users/<username>/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.7/8095d0b9f7e0a9cd79a663c740e0f8fb31d0e2c8/slf4j-simple-1.7.7.jar"/>

идея состоит в том, чтобы следовать этой решение. Но как реализовать зависит от случая к случаю. Один из способов фиксации является тот, который я использовал выше.

надеюсь, что это помогает.

Это не сообщение об ошибке, а предупреждение. Это очень четко объясняется на их веб-сайте как:

Это предупреждение, т. е. не ошибка, сообщение сообщается, когда поставщики SLF4J не могут быть найдены на пути к классу. Размещение одного (и только одного) из slf4j-nop.jar slf4j-простой.jar, slf4j-log4j12.jar, slf4j-jdk14.jar или logback-классика.jar на пути к классу должен решить эту проблему. Обратите внимание, что эти поставщики должны быть нацелены на slf4j-api 1.8 или более поздней версии.

при отсутствии a поставщик, SLF4J будет по умолчанию для поставщика регистратора no-operation (NOP).

https://www.slf4j.org/codes.html#StaticLoggerBinder