我认为spring-boot-starter-security中的某个模块与log4j冲突,但我不知道是哪一个。
我的gradle依赖性如下:
compile("org.springframework.boot:spring-boot-starter-thymeleaf")
compile("org.springframework.boot:spring-boot-starter-security"){
exclude module: "spring-boot-starter-logging"
}
compile "org.apache.logging.log4j:log4j-api"
compile "org.apache.logging.log4j:log4j-core"
compile "org.apache.logging.log4j:log4j-slf4j-impl"
compile('org.apache.poi:poi:3.10.1')
compile('org.apache.poi:poi-ooxml:3.10.1')
testCompile("junit:junit")
对我来说,问题继续存在:要么删除Logback,要么删除从log4j-slf4j-impl-2.12.0.jar加载的竞争实现类org . Apache . logging . slf4j . log 4 jloggerfactory
我补充道
configurations {
all {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
exclude group: 'ch.qos.logback', module: 'logback-classic'
exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'
}
}
到我的gradle.build,并使用最新版本刷新了所有项目依赖项,并解决了问题。
我明白了
compile("org.springframework.boot:spring-boot-starter-security"){
exclude module: "spring-boot-starter-logging"
exclude module: "logback-classic"
}
compile("org.springframework.boot:spring-boot-starter-thymeleaf"){
exclude module: "logback-classic"
}
maven的相同解决方案:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>1.5.1.RELEASE</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
当我试图运行我的项目时,我得到了标题中发现的错误。我已经阅读了关于此错误的其他线程,并找到了一个解决方案,该解决方案消除了该错误,但杀死了我所有的日志记录。 线程“main”java.lang.IllegalArgumentException中的异常:LoggerFactory不是LoggerContext,但Logback位于类路径上。删除Logback或竞争实现(类org.slf4j.impl
我到处都使用gradle和,但是,最近我的Spring Boot应用程序停止了从命令行运行。当我运行时,我得到... 线程“main”java.lang.IllegalArgumentException中的异常:LoggerFactory不是LoggerContext,但Logback位于类路径上。删除Logback或竞争实现(类org.slf4j.impl.log4jLoggerFactory从
问题内容: 好吧,我很困惑。我的SQL Server JAR在这里: 我的类路径已设置: 它是JDBC 4.0驱动程序,因此我不需要这样做,但是我尝试设置类名。 我仍然执行我的程序,但出现错误: 万一有问题,我正在运行Windows 8.1。我已经尝试过以管理员身份或不以管理员身份使用命令提示符。 Java信息: 有任何想法吗? SQL Server是SQL Server Express 2012
问题内容: 想知道不指定classpath选项时默认的classpath是什么吗? 问题答案: 当前的工作目录()。 从Java™教程中:PATH和CLASSPATH: 类路径 的 默认值为“。” ,表示仅搜索当前目录。指定CLASSPATH变量或-cp命令行开关将覆盖此值。 这包括子目录吗? 不,在类路径中没有条目是“递归的”。您必须明确列出每个子目录(或jar)。但是,如果您有一个表示clas
在阅读@Ridcully的响应之后,我想问一下是否有一种方法可以更新,以便它知道JSON是一个数组。比如?
首先,Java新手。我试图解码一个JSON字符串。我得到了包并将其复制到但是java说它不存在。我也尝试将CLASSPATH更改为相同的路径。我没有使用任何IDE 我甚至试着把它复制到和