Spring boot “线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/apache/logging/log4j/util/ReflectionUtil
我正在使用以下版本的corda-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' }
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。