如何解决quarkus-log4j2-IllegalAccessError-StackLocator
我已按照here(“关于Apache log4j的内容”部分)为quarku配置了log4j。 quarkus不能以
开头2020-08-23 17:07:59,896 ERROR [io.qua.application] (main) Failed to start application (with profile test): java.lang.IllegalAccessError: failed to access class org.apache.logging.log4j.util.StackLocator$FqcnCallerLocator from class org.apache.logging.log4j.util.StackLocator (org.apache.logging.log4j.util.StackLocator$FqcnCallerLocator is in unnamed module of loader 'app'; org.apache.logging.log4j.util.StackLocator is in unnamed module of loader io.quarkus.bootstrap.classloading.QuarkusClassLoader @414b2df5)
at org.apache.logging.log4j.util.StackLocator.<clinit>(StackLocator.java:37)
at org.apache.logging.log4j.util.StackLocatorUtil.<clinit>(StackLocatorUtil.java:33)
at org.apache.logging.log4j.spi.AbstractLogger.getLocation(AbstractLogger.java:2209)
at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2152)
at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2135)
at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2011)
at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1983)
at org.apache.logging.log4j.spi.AbstractLogger.debug(AbstractLogger.java:327)
...
有什么想法可能有问题吗?我在依赖的Maven模块中经常使用log4j2
修改
这是我pom.xml中的依赖项:
<dependencies>
<!-- custom dependencies to my own modules -->
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-jsonb</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-hibernate-orm</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-jdbc-mysql</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-security-jpa</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-smallrye-openapi</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.logmanager</groupId>
<artifactId>log4j2-jboss-logmanager</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-junit5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.30.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>2.30.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-binding</artifactId>
<version>2.30.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.weld.se</groupId>
<artifactId>weld-se-shaded</artifactId>
<version>3.1.4.Final</version>
<scope>test</scope>
</dependency>
</dependencies>
我没有包括对我自己的模块的依赖,因为对于stackoverflow来说,这篇文章已经有很多代码了。希望该片段可以提供有用的信息。
修改2
如果有人感兴趣,我想我可以提供一个漂亮而又小却完整的复制器。请让我知道如何分享该作品。
我进行的另一项观察:我还尝试按照here所述为log4j2添加一个日志适配器。但是,我找不到名为“ log4j2-jboss-logmanager”的非beta工件。有想法吗?
解决方法
这种行为消失了,不知道原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。