提问者:小点点

无法为类模块信息编制索引。类atlog4japi。jar:java。lang.IllegalStateException:未知标记!位置=4池计数=24


我们已经从log4j-api-2.7更新了log4jjar。jar到log4j-api-2.10。0.jar。我们在JBoss启动时得到了以下警告(我们使用的是JBoss-EAP-7.0)。

2018-09-05 05:31:28,669 WARN[org.jboss.as.server.deployment](MSC服务线程1-2)WFLYSRV0003:无法索引类module-info.class /content/project.ear/shared/log4j-api.jar:java.lang.IllegalStateExcoop:未知标签!POS=4 poolCount=24在org.jboss.jandex.ndexer.processConstantpool(ndexer.java:1416)在org.jboss.jandex.ndexer.index(ndexer.java:1450)在org.jboss.as.server.deployment.annotation.ResourceRootIndexer.indexResourceRoot(ResourceRootIndexer.java:99)org.jboss.as.server.deployment.annotation.AnnotationIndexProcessor.deploy(AnnotationIndexProcessor.java:51)org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:165)org.jboss.msc.service.ServiceControlllerImpl$StartTask. start Service(ServiceControlllerInp. java: 2032)在org. jboss. msc. service。ServiceControlllerImpl$StartWork. run(ServiceControlllerInp. java: 1955)在java. util. con电流。ThreadPoolExecutor. runWorker(ThreadPoolExecutor. java: 1149)在java. util. con当前。在java. lang上运行(ThreadPoolExecator. java: 624)。线程.运行(线程. java: 748)

经过我的分析,似乎模块信息。类是log4j-api-2.10中新引入的。0.jar,现在它无法在启动时索引该类。它使用JBoss的jandex-2.0。2.Final-redhat-1。来自eap-runtime-artifacts-7.0的依赖信息的jar。5.GA。波姆。

谁能帮我解决这个问题?

提前谢谢。


共2个答案

匿名用户

首先,这只是一个警告。

我猜你使用的Java版本低于8。module-info.class用于所谓的多版本jar(可编译所有java版本的jar)。

Java直到版本8都不能100%兼容这种技术。因此,我看到的唯一方法是将Java版本升级到1.8或降级log4j

匿名用户

这是一条警告消息,它的出现是因为jandex支持Java9只是忽略模块信息。在从属存档中对文件进行分类。为避免出现此警告消息,请将(wildfly\u HOME\modules\system\layers\base\org\jboss\jandex\main\jande-version.jar)中的jandex jar替换为jandex-2.0.5.Final-redhat-1和相应的module.xml。参考:https://issues.redhat.com/browse/JBEAP-15262 https://issues.redhat.com/browse/JBEAP-15715