現(xiàn)象
之前有一個項目測試環(huán)境部署成功,上線時tomcat啟動失敗??戳讼?catalina.out日志。由于當(dāng)時未及時記錄,所以完整異常已經(jīng)遺忘。部分異常如下:
org.apache.tomcat.util.bcel.classfile.ClassFormatException:
Invalid byte tag in constant pool: 19
定位
因為代碼都一樣,所以應(yīng)該是環(huán)境問題導(dǎo)致的。首先檢查了下測試環(huán)境和線上環(huán)境的tomcat版本,分別是8.0和7.4。開始懷疑tomcat版本的問題,想了想代碼中是否做了基礎(chǔ)代碼的修改。想起來升級了log4j-api到2.10.0。開始懷疑是tomcat和log4j-api不兼容。為了確認(rèn),開始google,看到這篇博客Invalid byte tag in constant pool: 19,這時已經(jīng)基本確認(rèn)了。升級線上tomcat,重新部署,DONE!