Log4j 2.16.0 java 8
Log4j 2.16.0 java 8
由于 log4j (CVE-2021-44228) 上的问题,我将一些应用程序迁移到 log4j 2.15.0(使用 JBoss EAP 7.1 和 jdk 1.8.0_211-b12)而没有任何问题。
我现在想从 log4j 2.15.0 迁移到 2.16.0。
当我尝试时出现以下错误
15:20:59,361 WARN [org.jboss.as.server.deployment] (MSC service thread
1-8) WFLYSRV0003: Could not index class
META-INF/versions/9/module-info.class at
/C:/jboss-eap-7.1/standalone/deployments/myApp-SNAPSHOT.war/WEB-INF/lib/log4j-api-2.16.0.jar:
java.lang.IllegalStateException: Unknown tag! pos=4 poolCount = 32 at
org.jboss.jandex.Indexer.processConstantPool(Indexer.java:1417) at
org.jboss.jandex.Indexer.index(Indexer.java:1451) at
org.jboss.as.server.deployment.annotation.ResourceRootIndexer.indexResourceRoot(ResourceRootIndexer.java:99)
at
org.jboss.as.server.deployment.annotation.AnnotationIndexProcessor.deploy(AnnotationIndexProcessor.java:51)
at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:165)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955)
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)
它似乎与 java 版本有关,特别是因为它适用于 JBoss EAP 7.3 和 jdk 11,但官方文档说
"Log4j 2.16.0 是 Log4j 的最新版本。从 Log4j 2.13.0 开始,Log4j 2 在运行时需要 Java 8 或更高版本。此版本包含新功能和修复可以在最新的更改报告中找到。"
https://logging.apache.org/log4j/2.x/index.html
有人遇到同样的问题吗?
编辑:重建所有项目后,我意识到这个堆栈不是导致崩溃的原因。因为这是警告,所以我会忽略它
我在使用 log4j 2.16.0 和 WildFly 10.1 时遇到了同样的问题。
我尝试将 WildFly 从 10.1 更新到 13.0 并解决了该错误。
问题已在 WildFly 13.0 ( https://issues.redhat.com/browse/WFLY-9608 ) 上修复。
似乎JBoss EAP 7.2相当于WildFly 14.0
所以你应该更新 JBoss EAP 比 7.2 更新。
由于 log4j (CVE-2021-44228) 上的问题,我将一些应用程序迁移到 log4j 2.15.0(使用 JBoss EAP 7.1 和 jdk 1.8.0_211-b12)而没有任何问题。 我现在想从 log4j 2.15.0 迁移到 2.16.0。
当我尝试时出现以下错误
15:20:59,361 WARN [org.jboss.as.server.deployment] (MSC service thread
1-8) WFLYSRV0003: Could not index class
META-INF/versions/9/module-info.class at
/C:/jboss-eap-7.1/standalone/deployments/myApp-SNAPSHOT.war/WEB-INF/lib/log4j-api-2.16.0.jar:
java.lang.IllegalStateException: Unknown tag! pos=4 poolCount = 32 at
org.jboss.jandex.Indexer.processConstantPool(Indexer.java:1417) at
org.jboss.jandex.Indexer.index(Indexer.java:1451) at
org.jboss.as.server.deployment.annotation.ResourceRootIndexer.indexResourceRoot(ResourceRootIndexer.java:99)
at
org.jboss.as.server.deployment.annotation.AnnotationIndexProcessor.deploy(AnnotationIndexProcessor.java:51)
at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:165)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955)
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)
它似乎与 java 版本有关,特别是因为它适用于 JBoss EAP 7.3 和 jdk 11,但官方文档说
"Log4j 2.16.0 是 Log4j 的最新版本。从 Log4j 2.13.0 开始,Log4j 2 在运行时需要 Java 8 或更高版本。此版本包含新功能和修复可以在最新的更改报告中找到。"
https://logging.apache.org/log4j/2.x/index.html
有人遇到同样的问题吗?
编辑:重建所有项目后,我意识到这个堆栈不是导致崩溃的原因。因为这是警告,所以我会忽略它
我在使用 log4j 2.16.0 和 WildFly 10.1 时遇到了同样的问题。 我尝试将 WildFly 从 10.1 更新到 13.0 并解决了该错误。
问题已在 WildFly 13.0 ( https://issues.redhat.com/browse/WFLY-9608 ) 上修复。
似乎JBoss EAP 7.2相当于WildFly 14.0
所以你应该更新 JBoss EAP 比 7.2 更新。