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

Spring boot “线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/apache/logging/log4j/util/ReflectionUtil,spring-boot,log4j,build.gradle,slf4j,corda,Spring Boot,Log4j,Build.gradle,Slf4j,Corda,我正在使用以下版本的corda- buildscript { ext.corda_release_version = '2.0.0' ext.corda_gradle_plugins_version = '1.0.0' 我正在使用以下版本的SpringBootWeb服务器- buildscript { ext.spring_boot_version = '1.5.7.RELEASE' ext.spring_version = '4.3.11.RELEASE' }

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

buildscript {
    ext.corda_release_version = '2.0.0'
    ext.corda_gradle_plugins_version = '1.0.0'
我正在使用以下版本的SpringBootWeb服务器-

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
线程“main”java.lang.NoClassDefFoundError中的异常:org/apache/logging/log4j/util/ReflectionUtil 位于org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:42) 位于org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46) 位于org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29) 位于org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358) 位于org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155) 位于org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132) 位于org.apache.commons.logging.LogFactory.getLog(LogFactory.java:273) 位于org.springframework.boot.SpringApplication(SpringApplication.java:179) 位于net.corda.server.ServerKt.main(server.kt:29) 原因:java.lang.ClassNotFoundException:org.apache.logging.log4j.util.ReflectionUtil 位于java.net.URLClassLoader.findClass(URLClassLoader.java:382) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:424) 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 9更多 期待洞察


提前谢谢

您使用的log4j版本与Springs自身对库的依赖性冲突。尝试删除log4j依赖项,并依赖于Spring带来的一个依赖项


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

是的,我使用的log4j版本有冲突。我没有在cordapp文件夹的build.gradle中将corda版本号属性“ext.corda_release_version”从“1”更新为“2”。我只在根文件夹的build.gradle中进行了更新。因此,Corda v1也与Corda v2一起下载,从而下载了两个版本的log4j。