【问题标题】:mvn spring-boot: run throwing log4j errorsmvn spring-boot:运行抛出 log4j 错误
【发布时间】:2021-10-13 16:23:42
【问题描述】:

我是 Java 新手。执行命令mvn spring-boot: run 时遇到错误。谁能帮我解决这个问题。此处附上屏幕截图。

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/langscape/.m2/repository/org/slf4j/slf4j-simple/1.7.28/slf4j-simple-1.7.28.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/langscape/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/langscape/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.12.1/log4j-slf4j-impl-2.12.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
Exception in thread "main" java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.impl.SimpleLoggerFactory loaded from file:/home/langscape/.m2/repository/org/slf4j/slf4j-simple/1.7.28/slf4j-simple-1.7.28.jar). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml: org.slf4j.impl.SimpleLoggerFactory
        at org.springframework.util.Assert.instanceCheckFailed(Assert.java:696)
        at org.springframework.util.Assert.isInstanceOf(Assert.java:596)
        at org.springframework.boot.logging.logback.LogbackLoggingSystem.getLoggerContext(LogbackLoggingSystem.java:281)
        at org.springframework.boot.logging.logback.LogbackLoggingSystem.beforeInitialize(LogbackLoggingSystem.java:104)
        at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationStartingEvent(LoggingApplicationListener.java:238)
        at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:219)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
        at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:70)
        at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:47)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:305)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)
        at com.ailaysa.translate.v1.TranslateApplication.main(TranslateApplication.java:15)

pom.xml 文件链接如下 you can see pom xml file here

这是pom.xml文件中的依赖列表:

<pom>
...
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
...
    <dependencies>
<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-thymeleaf</artifactId>-->
<!--        </dependency>-->
<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-web</artifactId>-->
<!--        </dependency>-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>

                <exclusion>
                    <groupId>org.codehaus.woodstox</groupId>
                    <artifactId>stax2-api</artifactId><!-- 4.1 conflicts with 3.1.4 from apache cxf-spring-boot-starter-jaxws-->
                </exclusion>

            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j</artifactId>
            <version>1.3.8.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <version>1.5.1.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-classic</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.5.1.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-classic</artifactId>
                </exclusion>
            </exclusions>
        </dependency>


        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.10</version>
        </dependency>

<!--        okapi-->

        <dependency>
            <groupId>net.sf.okapi</groupId>
            <artifactId>okapi-core</artifactId>
            <version>1.40.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.filters</groupId>
            <artifactId>okapi-filter-html</artifactId>
            <version>1.40.0</version>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>net.sf.okapi.steps</groupId>-->
<!--            <artifactId>okapi-step-wordcount</artifactId>-->
<!--            <version>1.40.0</version>-->
<!--        </dependency>-->
        <dependency>
            <groupId>net.sf.okapi.lib</groupId>
            <artifactId>okapi-lib-segmentation</artifactId>
            <version>1.40.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.tm</groupId>
            <artifactId>okapi-tm-pensieve</artifactId>
            <version>0.36</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/net.sf.okapi.filters/okapi-filter-json -->
        <dependency>
            <groupId>net.sf.okapi.filters</groupId>
            <artifactId>okapi-filter-json</artifactId>
            <version>1.40.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.filters</groupId>
            <artifactId>okapi-filter-table</artifactId>
            <version>1.40.0</version>
        </dependency>

        <dependency>
            <groupId>net.sf.okapi.filters</groupId>
            <artifactId>okapi-filter-openoffice</artifactId>
            <version>1.40.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.filters</groupId>
            <artifactId>okapi-filter-openxml</artifactId>
            <version>1.40.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.filters</groupId>
            <artifactId>okapi-filter-properties</artifactId>
            <version>1.40.0</version>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>net.sf.okapi.filters</groupId>-->
<!--            <artifactId>okapi-filter-fontmappings</artifactId>-->
<!--            <version>1.40.0</version>-->
<!--        </dependency>-->
        <dependency>
            <groupId>net.sf.okapi.filters</groupId>
            <artifactId>okapi-filter-po</artifactId>
            <version>1.40.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.filters</groupId>
            <artifactId>okapi-filter-its</artifactId>
            <version>1.40.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.filters</groupId>
            <artifactId>okapi-filter-idml</artifactId>
            <version>1.40.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.filters</groupId>
            <artifactId>okapi-filter-markdown</artifactId>
            <version>1.40.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.filters</groupId>
            <artifactId>okapi-filter-rtf</artifactId>
            <version>1.40.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.filters</groupId>
            <artifactId>okapi-filter-sdlpackage</artifactId>
            <version>1.40.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.filters</groupId>
            <artifactId>okapi-filter-xliff2</artifactId>
            <version>1.40.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.filters</groupId>
            <artifactId>okapi-filter-ts</artifactId>
            <version>1.40.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.steps</groupId>
            <artifactId>okapi-step-wordcount</artifactId>
            <version>1.40.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.steps</groupId>
            <artifactId>okapi-step-tradosutils</artifactId>
            <version>0.37</version>
        </dependency>
        <dependency>
            <groupId>net.sf.okapi.steps</groupId>
            <artifactId>okapi-step-common</artifactId>
            <version>1.40.0</version>
<!--            <scope>test</scope>-->
        </dependency>
        <!-- https://mvnrepository.com/artifact/net.sf.okapi.steps/okapi-step-common -->



        <!-- https://mvnrepository.com/artifact/net.sf.okapi.steps/okapi-step-leveraging -->
        <dependency>
            <groupId>net.sf.okapi.steps</groupId>
            <artifactId>okapi-step-leveraging</artifactId>
            <version>1.40.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/net.sf.okapi.steps/okapi-step-repetitionanalysis -->
        <dependency>
            <groupId>net.sf.okapi.steps</groupId>
            <artifactId>okapi-step-repetitionanalysis</artifactId>
            <version>1.40.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/net.sf.okapi.steps/okapi-step-scopingreport -->
        <dependency>
            <groupId>net.sf.okapi.steps</groupId>
            <artifactId>okapi-step-scopingreport</artifactId>
            <version>1.40.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/net.sf.okapi.steps/okapi-step-segmentation -->
        <dependency>
            <groupId>net.sf.okapi.steps</groupId>
            <artifactId>okapi-step-segmentation</artifactId>
            <version>1.40.0</version>
<!--            <scope>test</scope>-->
        </dependency>
        <!-- https://mvnrepository.com/artifact/net.sf.okapi.connectors/okapi-connector-pensieve -->
        <dependency>
            <groupId>net.sf.okapi.connectors</groupId>
            <artifactId>okapi-connector-pensieve</artifactId>
            <version>1.40.0</version>
        </dependency>


        <!--        <dependency>-->
<!--            <groupId>ldapjdk</groupId>-->
<!--            <artifactId>ldapjdk</artifactId>-->
<!--            <scope>system</scope>-->
<!--            <version>1.0</version>-->
<!--            <systemPath>/home/langscape/Documents/okapi/installation/lib/okapi-lib-1.41.0.jar</systemPath>-->
<!--        </dependency>-->
<!--        <dependency>-->
<!--            <groupId>ldapjdk</groupId>-->
<!--            <artifactId>ldapjdk</artifactId>-->
<!--            <scope>system</scope>-->
<!--            <version>1.0</version>-->
<!--            <systemPath>/home/langscape/Documents/okapi/installation/lib/okapi-lib-ui-1.41.0.jar</systemPath>-->
<!--        </dependency>-->

<!--        <dubug >-->


        <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>2.12.1</version>
<!--            <scope>test</scope>-->
        </dependency>

        <dependency>
            <groupId>com.twelvemonkeys.common</groupId>
            <artifactId>common-io</artifactId>
            <version>3.3.2</version>
        </dependency>
        <!-- Thanks for using https://jar-download.com -->

        <!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-core -->
<!--        <dependency>-->
<!--            <groupId>org.apache.lucene</groupId>-->
<!--            <artifactId>lucene-core</artifactId>-->
<!--            <version>8.7.0</version>-->
<!--        </dependency>-->

        <!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-core -->
<!--        <dependency>-->
<!--            <groupId>org.apache.lucene</groupId>-->
<!--            <artifactId>lucene-core</artifactId>-->
<!--            <version>7.6.0</version>-->
<!--        </dependency>-->

        <!-- https://mvnrepository.com/artifact/com.ibm.icu/icu4j-localespi -->
        <dependency>
            <groupId>com.ibm.icu</groupId>
            <artifactId>icu4j-localespi</artifactId>
            <version>68.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/net.htmlparser.jericho/jericho-html -->
        <dependency>
            <groupId>net.htmlparser.jericho</groupId>
            <artifactId>jericho-html</artifactId>
            <version>3.4</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/com.ibm.icu/icu4j -->

        <!--        <debug></debug>-->
        <!-- https://mvnrepository.com/artifact/com.ibm.icu/com.springsource.com.ibm.icu -->


    </dependencies>
...
</pom>

【问题讨论】:

  • 请不要使用图片,请将文字放在您的问题中。
  • 你能显示你的 pom.xml 吗?
  • pom.xml 文件链接已添加。
  • 您是否尝试过执行错误消息中建议的操作?
  • 您不应该为那些由 Spring Boot 管理的依赖项提供 &lt;version&gt; 标签。使用 mvn dependency:tree 或您的 IDE 找出哪些其他依赖项依赖于 log4jslf4j-simplelogback-classic

标签: java spring-boot log4j


【解决方案1】:

你的依赖有两个主要问题:

  • 您混合了来自多个不同版本的 spring-boot-starter-* 依赖项,
  • 您覆盖了某些managed dependencies 的版本。 Spring Boot 管理数百个工件的版本(参见 complete list):您不应为这些工件指定 &lt;version&gt; 标记。

在这些更改之后,您的 Spring Boot 依赖项(我假设您想要 Log4j 2.x,而不是 Log4j 1.2)变为:

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

除了在 IDE 中使用mvn dependency:tree 或类似功能来找出拉动log4j(1.2 版)和logback-classic 的依赖项并排除那些传递依赖项。你有一个这样的依赖:

    <dependency>
      <groupId>net.sf.okapi.steps</groupId>
      <artifactId>okapi-step-tradosutils</artifactId>
      <version>0.37</version>
      <exclusions>
        <exclusion>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
        </exclusion>
        <exclusion>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-classic</artifactId>
        </exclusion>
        <exclusion>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-core</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

【讨论】:

  • 感谢大家帮我解决问题......
猜你喜欢
  • 2016-04-10
  • 2016-11-16
  • 2019-05-16
  • 1970-01-01
  • 2016-12-23
  • 2017-06-09
  • 1970-01-01
  • 2021-03-23
  • 1970-01-01
相关资源
最近更新 更多