Invalid byte tag in constant pool: 19

一、問題

Invalid byte tag in constant pool: 19

具體錯誤:

org.apache.catalina.startup.ContextConfig.processAnnotationsJar Unable to process Jar entry [META-INF/versions/9/module-info.class] from Jar [file:/G:/Tomcat/webapps/blog/WEB-INF/lib/bcprov-jdk15on-1.64.jar] for annotations

二、問題分析

Tomcat報此錯誤明顯的是加載依賴的jar導致的問題,具體到項目的哪個jar就是上面的具體錯誤,本項目是bcprov-jdk15on-1.64.jar導致的問題,更具體的是無法加載 [META-INF/versions/9/module-info.class] 字節碼文件。
其實,即使是其他的jar也可能會導致Tomcat出現Invalid byte tag in constant pool: 19的問題。

三、問題解決

搜索了一下網頁,大多都是說jar包沒有用到,直接刪除;甚至是修改Tomcat啓動命令跳過該jar。
但是,項目確實用到了該jar包刪除或者跳過加載顯然不合適,最好的辦法就是分析自己的錯誤,真正找到解決辦法。
本項目bcprov-jdk15on-1.64.jar導致的問題,找到jar解壓文件,清單文件下的META-INF/versions/9/module-info.class確實存在。第三方的jar我們沒有辦法修改,怎麼辦?只能查看其他版本試試或者降低到沒有module-info.class文件的版本。
最終發現,1.60版本沒有此class文件,1.61開始添加了此文件,於是降低版本修改依賴版本爲1.60,問題解決!

發佈了32 篇原創文章 · 獲贊 10 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章