【问题标题】:Spring boot application failed to start due to : Failed to instantiate SLF4J LoggerFactory ReportedSpring boot 应用程序无法启动,原因是:Failed to instantiate SLF4J LoggerFactory Reported
【发布时间】:2016-11-28 08:53:45
【问题描述】:

我正在编写示例代码,在启动 Spring Boot 应用程序时出现以下错误,我粘贴了完整的错误堆栈和使用的 pom 文件。

  Failed to instantiate SLF4J LoggerFactory
    Reported exception:
    java.lang.NoClassDefFoundError: ch/qos/logback/core/joran/spi/JoranException
        at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
        at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
        at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
        at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
        at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132)
        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:273)
        at org.springframework.boot.SpringApplication.<clinit>(SpringApplication.java:191)
        at com.hellokoding.auth.WebApplication.main(WebApplication.java:16)
    Caused by: java.lang.ClassNotFoundException: ch.qos.logback.core.joran.spi.JoranException
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 9 more

pom.xml 是

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <artifactId>auth</artifactId>
    <name>auth</name>
    <description>auth</description>
    <packaging>war</packaging>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.5.RELEASE</version>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
    </properties>
.................

</project>

如果我将 1.3.5.RELEASE 更改为 1.3.2.RELEASE,它可以正常工作。 我不明白为什么会发生这种情况,请任何人解释一下

【问题讨论】:

  • 添加完整的堆栈跟踪和依赖项。
  • 发布完整的pom.xml

标签: spring-security spring-boot


【解决方案1】:

我在使用 1.4.2.RELEASE 时遇到了同样的问题。似乎以某种方式在 logback-core jar 中缺少某些类,这可能是启动 springboot 应用程序所必需的。 所以,我搜索了 logback core jar 并将 maven 依赖项粘贴到我的 pom.xml 文件中,然后我的 spring-boot 启动了。如果需要,请确保清理项目。 我的 pom 如下所示:-

<modelVersion>4.0.0</modelVersion>
<groupId>io.javavbrains.springbpptquickstart</groupId>
<artifactId>CourseApi</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Java Brains Course API</name>


<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.2.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.2.3</version>
    </dependency>

</dependencies>
<properties>
    <java.version>1.8</java.version>
</properties>

【讨论】:

  • 我在 2.0.1.RELEASE 中遇到了同样的问题。我认为 spring 人需要修改 starter-web 项目 pom.xml 并默认包含 logback 依赖项。
猜你喜欢
  • 2017-03-01
  • 2017-09-04
  • 2015-05-10
  • 2020-08-04
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
相关资源
最近更新 更多