我正在使用Sping Boot 1.5.8。SLF 4J似乎不适合我。下面是我在项目运行开始时在控制台中得到的内容。出现以下错误显示:
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.
字符串
开始:编辑1:
我的主机不记录以下内容:
LOGGER.error("ERROR");
LOGGER.error("WARN");
LOGGER.error("INFO");
LOGGER.error("DEBUG");
LOGGER.error("TRACE");
型
我得到的只是控制台中的第一行错误(警告)。
结束:编辑1:
我在互联网上查找并发现了多个标题为this的问题,尝试了建议,但没有解决我的问题。我遇到了这个stackoverflow question,其中Konstantinos暗示可能存在多个slf 4j依赖项。互联网上的其他解决方案也表明了这一点;甚至官方网站也证实了这是导致此类错误的原因。
为了消除这种可能性,我还检查了我的有效pom,发现我的有效pom确实包含了他提到的所有4个依赖项。一般的建议是pom应该只包含这4个依赖项中的一个。但是,由于这都是由Sping Boot 处理的,我有点困惑,不知道如何解决这个问题,因为我从来没有在我的pom中专门包含任何slf 4j依赖项。所以我无法遵循这个建议。
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>
<groupId>com.codingethics.flightreservation</groupId>
<artifactId>flightreservation</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>flightreservation</name>
<description>Flight Reservation Application</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
型
应用属性:
spring.datasource.url=jdbc:mysql://localhost:3306/reservation
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.show-sql=true
spring.mvc.view.prefix=/WEB-INF/jsps/
spring.mvc.view.suffix=.jsp
server.context-path=/flightreservation
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=<myusername>
spring.mail.password=<mypwd>
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
型
为什么这种依赖性冲突(如果在这里的情况下)会发生在Sping Boot 项目中。Sping Boot Boot不应该事先处理这些问题吗?
任何形式的帮助/指导都非常感谢。
开始:编辑@Antot
我得到NoClassDefFoundError.(按照您建议的步骤进行操作):
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.springframework.boot.SpringApplication.<clinit>(SpringApplication.java:179)
at com.codingethics.flightreservation.FlightreservationApplication.main(FlightreservationApplication.java:10)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
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)
... 2 more
型
END:为@Antot编辑
2条答案
按热度按时间nnsrf1az1#
您可能首先要检查不受Sping Boot 管理的东西是否正在拉入其他依赖项。您可以使用
mvn dependency:tree
来执行此操作,以查看什么在拉入什么。如果这没有给给予一个正确的方向,那可能是你下载的依赖之一被borked了。你可能想清除本地仓库。你可以使用
mvn dependency:purge-local-repository
来从本地maven仓库中删除所有依赖。然后,当执行
mvn package
(或其他将编译和构建jar的任务)时,将(重新)下载jar,并希望以正确的方式没有损坏。uurv41yg2#
有用!但只有当我专门添加范围
compile
时,它才对我有效:字符串