一、异常
java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
... more 二、原因
1、相同的Jar包不同版本的冲突,重复加载了多个版本的Jar包
2、不同Jar包之间的类冲突,比如Hibernate3.5中已包含相关注解就不再需要annotations的注解包
3、Tomcat等Web服务器的与项目依赖的Jar包冲突
4、JDK的Jar包与项目依赖Jar包冲突
本文详细解析了java.lang.IncompatibleClassChangeError异常的原因及其解决办法,主要涉及Jar包版本冲突、类冲突、Web服务器及JDK冲突等问题。

8098

被折叠的 条评论
为什么被折叠?



