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


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

приложение отлично работает в 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.

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

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

23 404

23 ответа:

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

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

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

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

Это для тех, кто пришел сюда из поиска 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>

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

просто добавьте это в ваш пом.xml:

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

put file slf4j-log4j12-1.6.4.jar в classpath будет делать трюк.

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

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

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

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

Если вы используете 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/

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

несколько раз глупые ошибки ломают нам голову;)

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

At https://mvnrepository.com/artifact/org.slf4j/slf4j-simple вы найдете последнюю версию простой привязки SLF4J. Выберите тот, который подходит вам лучше всего (по-прежнему 1.7.25 от 2017-03 является стабильной версией по состоянию на 2018-02) и включите его в свой pom.XML.

бета-версия марта 2018

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

Стабильная Версия

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

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

Slf4j-это фасад для базовых фреймворков ведения журнала, таких как log4j, logback, java.утиль.лесозаготовительный.

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

  • log4j-slf4j-log4j12-1.7.21.банку
  • java.утиль.logging-slf4j-jdk14-1.7.21.jar и т. д.

вышеприведенная ошибка возникает, если привязка 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

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

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

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 к Java libs.

получить весь пакет slf4j в http://www.slf4j.org/download.html

пожалуйста, добавьте следующие зависимости в 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>

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

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

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

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

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

я столкнулся с аналогичной проблемой с приложениями 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>

по данным SLF4J официальная документация

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

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

просто добавить банку вместе с slf4j api.Jar в classpath, чтобы получить вещи сделано. Удачи

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

https://mvnrepository.com/artifact/org.slf4j/slf4j-simple/1.7.25

в качестве альтернативы включению jar и чистым решениям 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'

поставить это в зависимости от вашего .

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

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

HTH Питер

Я использую Jena и добавляю зависимость от POM.xml

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

Я пытаюсь добавить slf4j-простой, но он просто исчезает "SLF4J: не удалось загрузить класс "org.slf4j.осущ.StaticLoggerBinder "" ошибка, но logback-классический показать более подробную информацию.

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

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

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

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

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

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