jar包冲突导致的java.lang.NoClassDefFoundError错误
[size=large][b](本文只是描述导致NoClassDefFoundError错误的一个原因,其他原因不在文中表述。)[/b][/size]
在eclipse使用ctrl+shift+t,输入异常的类名,查看是否有同包名,不同jar包下的多个类存在。
删除冲突的jar。
本人在实际使用中是commons-logging.jar与slf4j的jcl-over-slf4j.jar的LogFactory.java的冲突。
排查过程,首先查找到了冲突的两个包。
因为是maven项目,部分依赖关系已经排除了commons-logging.jar的依赖关系。
但是该jar依然存在于项目中,怀疑是依赖关系没有完全排除。
使用maven build的dependency:tree,查找输出内容中的commons-logging,查找该依赖的父级,添加排除依赖关系代码。
[size=large][b](本文只是描述导致NoClassDefFoundError错误的一个原因,其他原因不在文中表述。)[/b][/size]
在eclipse使用ctrl+shift+t,输入异常的类名,查看是否有同包名,不同jar包下的多个类存在。
删除冲突的jar。
本人在实际使用中是commons-logging.jar与slf4j的jcl-over-slf4j.jar的LogFactory.java的冲突。
排查过程,首先查找到了冲突的两个包。
因为是maven项目,部分依赖关系已经排除了commons-logging.jar的依赖关系。
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
但是该jar依然存在于项目中,怀疑是依赖关系没有完全排除。
使用maven build的dependency:tree,查找输出内容中的commons-logging,查找该依赖的父级,添加排除依赖关系代码。