ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder

Я конвертирую приложение Spring в Spring-Boot, используя версию boot-starter-parent: 2.0.4.RELEASE. Когда я делаю сборку с помощью mvn install, она проходит нормально, но когда я пытаюсь запустить приложение с помощью команды:mvn spring-boot:run -Dspring.profiles.active=dev, Я получаю это исключение: ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder

Вот зависимости в моем pom:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version>
</parent>

<dependencies>
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
    <version>2.0.1.RELEASE</version>
  </dependency>
  <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.24</version>
  </dependency>
  <dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.3.0-alpha4</version>
  </dependency>
  <dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.3.0-alpha4</version>
  </dependency>
</dependencies>

Я попытался последовать совету из этого вопроса и использовать новые и старые версии зависимостей logback (как основных, так и классических), а также добавить "slf4j-log4j12" и "slf4j-simple", но все еще получал исключение. Трассировка стека это:

java.lang.NoClassDefFoundError: org / slf4j / impl / StaticLoggerBinder в org.springframework.boot.logging.logback.LogbackLoggingSystem.getLoggerContext (LogbackLoggingSystem.java:285) Log.LoggingLog.LogGingsLog.LoggerFrame.java:102) at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationStartingEvent (LoggingApplicationListener.java:191) в org.springframework.boot.context.logging.LoggingApplicationListener.70Application.jpg springframework.context.event.SimpleApplicationEventMulticaster.invokeListener (SimpleApplicationEventMulticaster.java:167) при org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent (SimpleApplicationEventMulticaster.java:139) в org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent (SimpleApplicationEventMulticaster. Java:122) в org.springframework.boot.context.event.EventPublishingRunListener.starting (EventPublishingRunListener.java:68) по адресу org.springframework.boot.SpringApplicationRunListeners.starting (SpringApplicationRunListeners.java:48) по адресу org.springframework.boot.SpringApplication.bora.pring.pring..SpringApplication.run (SpringApplication.java:1258) в org.springframework.boot.SpringApplication.run (SpringApplication.java:1246) в com.hbo.esp.MyApplication.main (MyApplication.java:17) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод)

1 ответ

Решение

Попробуйте изменить версию каждой зависимости следующим образом.

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.2.3</version>
</dependency>

Надеюсь это поможет.

Другие вопросы по тегам