解決Tomcat啟動報錯:嚴(yán)重:Unable?to?process?Jar?entry?[META-INF/versions/9/module-info.class]
報錯
啟動有報錯,但不影響使用,本著不放過任何一個錯誤的原則來解決下
報錯代碼:
嚴(yán)重: Unable to process Jar entry [META-INF/versions/9/module-info.class] from Jar [jar:file:/G:/maven/repository/org/apache/logging/log4j/log4j-api/2.16.0/log4j-api-2.16.0.jar!/] for annotations
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
at org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:97)
at org.apache.tomcat.util.bcel.classfile.ConstantPool.<init>(ConstantPool.java:54)
at org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:174)
at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:83)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2119)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1981)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1942)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1927)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1332)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:888)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5522)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:679)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1966)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
解決
因為不影響使用,所以我們可以在啟動Tomcat時需要跳過檢查的jar包。
通過tomcat.util.scan.StandardJarScanFilter.jarsToSkip參數(shù)實現(xiàn)
打開如下目錄文件
tomcat\conf\catalina.properties
tomcat.util.scan.StandardJarScanFilter.jarsToSkip節(jié)點增加log4j-api-2.16.0.jar
重啟啟動tomcat無報錯。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Tomcat打破雙親委派機制實現(xiàn)隔離Web應(yīng)用的方法
本文主要介紹了Tomcat打破雙親委派機制實現(xiàn)隔離Web應(yīng)用的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08通過prometheus監(jiān)控Tomcat運行狀態(tài)的操作流程
文章介紹了如何安裝和配置Tomcat,并使用Prometheus和Tomcat Exporter來監(jiān)控Tomcat的運行狀態(tài),文章詳細(xì)講解了Tomcat的常用指標(biāo),如連接、請求、會話和線程指標(biāo),并提供了具體的計算方法和示例,需要的朋友可以參考下2025-02-02tomcat獲取執(zhí)行的線程池信息和線程堆棧的方法詳解
這篇文章主要給大家介紹了tomcat獲取執(zhí)行的線程池信息和線程堆棧的方法,文章通過代碼示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-11-11redission-tomcat快速實現(xiàn)從單機部署到多機部署詳解
這篇文章主要介紹了redission-tomcat快速實現(xiàn)從單機部署到多機部署詳解,本文介紹一個基于redis的tomcat session管理開源項目:redission-tomcat,可無代碼侵入式地快速實現(xiàn)session共享,需要的朋友可以參考下2019-06-06Tomcat starup.bat腳本開機自啟動的實現(xiàn)
本文主要介紹了Tomcat starup.bat腳本開機自啟動的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04淺談Tomcat中<Context>標(biāo)簽的使用方式和注意事項
本文主要介紹了淺談Tomcat中<Context>標(biāo)簽的使用方式和注意事項,Context標(biāo)簽可以設(shè)置Tomcat默認(rèn)項目,設(shè)置項目的瀏覽器訪問路徑,讓項目修改后自動重新編譯部署,感興趣的可以了解下2023-11-11