ResolutionException在Java中11

BobCoder:

我已经开始用Java编写11新的应用程序和运行应用程序时,我得到这个错误之下。我读到这个问题,看起来是分开包装的情况。但我不知道我怎样才能解决这个问题。

java.lang.module.ResolutionException: Modules slf4j.log4j12 and log4j export package org.apache.log4j to module kubernetes.model.common

我已经在下面POM依赖关系的log4j和SLF4J。

Log4j的

<dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.26</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.26</version>
    </dependency>

log4j2

当我试图用下列依赖使用log4j2我得到了不同的错误

 <dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.7</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>2.7</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-slf4j-impl</artifactId>
  <version>2.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>

java.lang.module.ResolutionException: Modules log4j.core and log4j.api export package org.apache.logging.log4j to module java.annotation
rgoers:

slf4j-log4j12包含一个名为类org.apache.log4j.MDCFriend

我记得这是修复中的错误log4j 1.x,当版本检测模式在Java中9改为自Log4j的1.x中达到了生命的尽头在2015年8月的bug无法固定有这么SLF4J推出了这款“修复”发生。不幸的是,使用org.apache.log4jlog4j的罐子外面包在Java模块系统,这是什么原因造成您所看到的问题是被禁止的。

此外,请注意安全漏洞CVE-2019-17571已经为Log4j的1.x的创建 当你的应用程序可能不会是脆弱的问题将出现在安全扫描。

您有几种选择:

  1. 创建针对SLF4J的bug报告,并希望它被固定。
  2. 创建您自己的SLF4J-log4j12的叉子和自己解决它。
  3. 升级从Log4j的1至2的Log4j(我建议一个新的应用程序中的溶液)。
  4. 使用比Log4j的2以外的SLF4J实现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章