由于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
有人有同样的问题吗?
编辑:在重建了所有的项目之后,我意识到这个堆栈并不是导致崩溃的原因。因为这是一个警告,所以我忽略了它
1条答案
按热度按时间uhry853o1#
我在使用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。
http://www.mastertheboss.com/jbossas/jboss-eap/what-is-the-difference-between-jboss-eap-wildfly-and-jboss-as/
因此,您应该将JBoss EAP更新到7.2以上。