J2EE - IncompatibleClassChangeError: Implementing class

襲冷發表於2018-05-18

一、異常

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包衝突




相關文章