报错
启动有报错,但不影响使用,本着不放过任何一个错误的原则来解决下
报错代码:
严重: 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参数实现
打开如下目录文件
tomcat\conf\catalina.properties
tomcat.util.scan.standardjarscanfilter.jarstoskip节点增加log4j-api-2.16.0.jar
重启启动tomcat无报错。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论