elasticsearch啟動報錯:Unable to process Jar entry [META-INF/versions/9/module-info.class] from Jar [jar:file:log4j-api-2.11.1.jar!/] for annotations


從字面上來說,就是無法處理log4j-api-2.11.1.jar的注解,就是說在當前的開發環境下,elasticsearch包含的log4j-api-2.11.1.jar版本過高了。

再貼下相信的報錯吧:

嚴重: Unable to process Jar entry [META-INF/versions/9/module-info.class] from Jar [jar:file:/F:/Repository/org/apache/logging/log4j/log4j-api/2.11.1/log4j-api-2.11.1.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:133) at org.apache.tomcat.util.bcel.classfile.ConstantPool.<init>(ConstantPool.java:60) at org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:209) at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:119) at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2134) at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:2010) at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1976) at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1961) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1319) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

我的解決方法是,修改pom文件,elasticsearch-rest-high-level-client排除log4j-api,再加上一個低版本的log4j-api,具體代碼如下:

<dependency>     <groupId>org.elasticsearch.client</groupId>     <artifactId>elasticsearch-rest-high-level-client</artifactId>     <version>6.5.3</version>     <exclusions>         <exclusion>             <artifactId>log4j-api</artifactId>             <groupId>org.apache.logging.log4j</groupId>         </exclusion>     </exclusions> </dependency> <dependency>     <groupId>org.apache.logging.log4j</groupId>     <artifactId>log4j-api</artifactId>     <version>2.6.2</version> </dependency>

為什么是2.6.2呢?因為我本地最低的log4j-api版本是2.6.2,我從2.11.1開始往下版本替換,只有2.6.2沒有報錯。

log4j-api本地倉庫

未經允許不得轉載:  技術文章  »  Java編程  »  elasticsearch啟動報錯:Unable to process Jar entry [META-INF/versions/9/module-info.class] from Jar [jar:file:log4j-api-2.11.1.jar!/] for annotations

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM