CGLIB 版本3.1 內建 ASM 4.2 版本
與引入的 ASM 3.3.1 衝突,
故依賴CGLIB 自身依賴的ASM 即可
<!-- asm cglib --> <!--<dependency>--> <!--<groupId>asm</groupId>--> <!--<artifactId>asm</artifactId>--> <!--<version>${asm.version}</version>--> <!--</dependency>--> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>${cglib.version}</version> </dependency> <!-- asm cglib -->
cglib3.1- pom
<dependencies> <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> <version>4.2</version> </dependency> <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm-util</artifactId> <version>4.2</version> <optional>true</optional> </dependency>
網上的解決方案:
cglib版本為3.0或3.1,org.objectweb.asm版本為3.1.0時
版本衝突,報錯java.lang.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super class
使用cglib 2.2 可解決此問題,該版本中的DebuggingClassWriter的父類為ClassWriter
按照此方案依舊報錯。
lib檔案不匹配,我們下載最新的ASM檔案,則解決了以上問題。
asm-5.2.jar
http://forge.ow2.org/projects/asm/