我们已经将log4j jar从log4j-api-2.7.jar更新到log4j-api-2.10.0.jar。在启动JBoss时,我们会收到以下警告(我们正在使用JBoss 7.0)。
2018-09- 05 :31:28,669警告org.jboss.as.server.deployment WFLYSRV0003:无法索引类模块-info.class在/content/project.ear/shared/log4j-api.jar: java.lang.IllegalStateException:未知标签!org.jboss.jandex.Indexer.processConstantPool(Indexer.java:1416) at org.jboss.jandex.Indexer.index(Indexer.java:1450) 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)在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)
根据我的分析,模块信息类似乎是在log4j-api-2.10.0.jar中新引入的,现在它无法在启动时对该类进行索引。它使用JBoss的jandex-2.0.2,from 1.jar作为相同的,它来自eap的依赖信息-运行时-工件-7.0.5.GA.pom。
有人能帮我解决这个问题吗?
提前谢谢。
发布于 2018-09-05 10:49:45
首先,这只是一个警告。
我想您使用的是低于8的Java版本,module-info.class
用于所谓的多版本jar(与所有java版本都兼容的jar)。
Java在第8版之前与此技术不能100%兼容。所以我看到的唯一方法是将你的Java版本升级到1.8或者降级log4j
发布于 2020-02-20 07:16:45
这是一条警告消息,它之所以发生,是因为jandex支持Java9是简单地忽略依赖档案中的模块信息类文件。为了避免这条警告消息,将(wildfly_HOME\modules\system\layers\base\org\jboss\jandex\main\jande-version.jar中的jandex jar替换为jandex-2.5。1和相应的module.xml。参考文献:https://issues.redhat.com/browse/JBEAP-15262 https://issues.redhat.com/browse/JBEAP-15715
https://stackoverflow.com/questions/52183207
复制相似问题