由于slf4j api和sl4j标记的AbstractMethodError调用apacheds-all-1.5.5

时间:2017-03-28 11:02:29

标签: java spring logging

我登陆了这个着名的错误:

java.lang.AbstractMethodError: ch.qos.logback.classic.Logger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.debug(SLF4JLocationAwareLog.java:120)

在经历了很多SO问题后,我的进步是:

  • mvn.cmd dependency:tree -DskipTests | findstr /R /C:slf4j证明我在slf4j-api上使用相同版本的slf4j,jcl-over-slf4j(1.5.5,我不能使用以下版本的以下版本)
  • 查找加载某些类的类路径,我们看到以下结果:

    debugJars(org.slf4j.spi.LocationAwareLogger.class); debugJars(org.apache.commons.logging.impl.SLF4JLocationAwareLog.class); debugJars(org.slf4j.Marker.class);

    debugJars(ch.qos.logback.classic.Logger.class);

返回:

  

文件:/ C:!/Users/User/.m2/repository/org/apache/directory/server/apacheds-all/1.5.5/apacheds-all-1.5.5.jar /组织/ SLF4J / SPI /

     

文件:/ C:!/Users/User/.m2/repository/org/slf4j/jcl-over-slf4j/1.5.5/jcl-over-slf4j-1.5.5.jar /组织/阿帕奇/公地/记录/ IMPL /

     

文件:/ C:!/Users/User/.m2/repository/org/apache/directory/server/apacheds-all/1.5.5/apacheds-all-1.5.5.jar /组织/ SLF4J / < / p>      

文件:/ C:!/Users/User/.m2/repository/ch/qos/logback/logback-classic/1.1.2/logback-classic-1.1.2.jar / CH / QOS /的logback /经典/

如何摆脱apacheds-all覆盖我正确的sl4j依赖关系的事实?

pom.xml没有包含任何有关appached的内容 - 所有依赖项我明白它可能是一个隐式依赖项,但我该如何解决?

1 个答案:

答案 0 :(得分:0)

我也使用相同的依赖,我没有遇到任何问题 你能尝试下面的

吗?
<org.slf4j-version>1.5.5</org.slf4j-version>

<!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>

<dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.15</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jdmk</groupId>
                    <artifactId>jmxtools</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jmx</groupId>
                    <artifactId>jmxri</artifactId>
                </exclusion>
            </exclusions>
            <scope>runtime</scope>
        </dependency>