新接手一個古老 javaWeb 項目,啟動的時候,報以下錯誤:
org.aspectj.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 18 at org.aspectj.apache.bcel.classfile.Constant.readConstant(Constant.java:133) at org.aspectj.apache.bcel.classfile.ConstantPool.<init>(ConstantPool.java:45)...項目的 web.xml 文件里 version=2.4。
經過各找查找資料,就連 StackOverflow 上的回答也是說把 version 升級到 3.0 并加入 metadata-complete=”true” 設置,然而并沒有什么效果。
最終,找到了這篇文章:《解決在JDK8中org.aspectj.apache.bcel.classfile.ClassFormatException》
原博也真是厲害。
關鍵點是 aspectjweaver 的版本太低,不支持 JDK7 和 Java8 等等,可想而知我接手的這個項目有多古老啊。。。傷心
升級 aspectjweaver 的版本就可以解決了
所以,不用去升級 web.xml 并新加 metadata-complete=”true” 設置也是可以的,親測,加了也沒用。
新聞熱點
疑難解答