线程“主”中的异常java.lang.NoClassDefFoundError:org / apache / logging / log4j / util / ReflectionUtil

时间:2019-06-01 15:06:08

标签: spring-boot log4j build.gradle slf4j corda

我正在使用以下版本的Corda-

buildscript {
    ext.corda_release_version = '2.0.0'
    ext.corda_gradle_plugins_version = '1.0.0'

我正在使用以下版本的Spring Boot Web服务器-

buildscript {
    ext.spring_boot_version = '1.5.7.RELEASE'
    ext.spring_version = '4.3.11.RELEASE'
}

我正在使用以下版本的log4j-

dependencies {

compile "org.apache.logging.log4j:log4j-web:2.7"

编译时引发以下错误-

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/util/ReflectionUtil
        at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:42)
        at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)
        at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)
        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:179)
        at net.corda.server.ServerKt.main(Server.kt:29)
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.util.ReflectionUtil
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 9 more

期待见识。

先谢谢了。

1 个答案:

答案 0 :(得分:1)

您正在使用的log4j版本与Springs自己对库的依赖关系冲突。尝试删除您的log4j依赖项,并依靠Spring带来的一种。

log4j dep的版本可能比spring的版本低,因此出现了NoClassDefFoundError。