【问题标题】:Exception in Struts 2.5.22 while startStruts 2.5.22 启动时出现异常
【发布时间】:2020-08-20 04:25:38
【问题描述】:

我在启动 tomcat 服务器时遇到以下异常。这似乎是一个 log4j 异常。我刚刚将 struts 版本从 2.5.20 升级到 2.5.22。 Log4j-api-2.12.1 和 log4j 核心是 2.13.2。请提出建议。

2020 1:41:53 PM org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter [struts2]
****java.lang.NoSuchMethodError: org.apache.logging.log4j.util.PropertiesUtil.getStringProperty([Ljava/lang/String;Ljava/lang/String;Lorg/apache/logging/log4j/util/Supplier;)Ljava/lang/String;****
    at org.apache.logging.log4j.core.util.BasicAuthorizationProvider.<init>(BasicAuthorizationProvider.java:45)

【问题讨论】:

    标签: logging struts2 log4j2


    【解决方案1】:

    不支持使用不同版本的 Log4J-api 和 Log4J-core。

    【讨论】:

      【解决方案2】:

      您似乎有不同版本的 jar 用于 log4j-core 和 log4j-api。管理依赖使用Maven

      将 Maven dependency 添加到您的项目中

      <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-core</artifactId>
       <version>2.13.2</version>
      </dependency>
      <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-api</artifactId>
       <version>2.13.2</version>
      </dependency>
      

      【讨论】: