java.lang.AbstractMethodError : org. slf4j.impl.Log4jLoggerAdapter.log(ava/lang/Object;Ljava/lang/Throwable;)V

标签 java log4j

我正在尝试执行 samll Camel 应用程序,但出现了与 log4j 相关的错误。我检查了很多论坛,但不幸的是没有用。请帮我解决这个问题。提前致谢。

gradle 依赖项:

+--- org.slf4j:slf4j-api:1.7.6
|    |    \--- org.slf4j:jcl-over-slf4j:1.7.6
|    |         \--- org.slf4j:slf4j-api:1.7.6

log4j相关依赖:

    compile group: 'org.slf4j', name: 'jcl-over-slf4j', version:'1.5.8'
    compile group: 'org.slf4j', name: 'slf4j-api', version:'1.5.8'
    compile group: 'org.slf4j', name: 'slf4j-log4j12', version:'1.5.8'
    compile group: 'log4j', name: 'log4j', version:'1.2.14'

异常跟踪:

INFO: Spring WebApplicationInitializers detected on classpath: [com.pluralsight.orderfulfillment.config.WebContextInitializer@513aec64]
SLF4J: The requested version 1.5.8 by your slf4j binding is not compatible with [1.6, 1.7]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
Jul 05, 2017 12:58:12 PM org.apache.catalina.core.ApplicationContext log
SEVERE: StandardWrapper.Throwable
java.lang.AbstractMethodError: org.slf4j.impl.Log4jLoggerAdapter.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
    at org.apache.commons.logging.impl.SLF4JLocationAwareLog.debug(SLF4JLocationAwareLog.java:133)
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:118)
    at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1269)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1075)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5368)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5660)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

构建.gradle:

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'war'
apply plugin: "eclipse"

group = 'com.pluralsight.camel'
version = '1.0-SNAPSHOT'

description = """"""

sourceCompatibility = 1.7
targetCompatibility = 1.7



repositories {

     maven { url "http://central.maven.org/maven2/" }
}
dependencies {
    compile(group: 'org.springframework', name: 'spring-core', version:'4.0.4.RELEASE') {
            exclude(module: 'commons-logging')
    }
    compile group: 'org.springframework', name: 'spring-aop', version:'4.0.4.RELEASE'
    compile group: 'org.springframework', name: 'spring-context', version:'4.0.4.RELEASE'
    compile group: 'org.springframework', name: 'spring-tx', version:'4.0.4.RELEASE'
    compile group: 'org.springframework', name: 'spring-aspects', version:'4.0.4.RELEASE'
    compile group: 'org.springframework', name: 'spring-web', version:'4.0.4.RELEASE'
    compile group: 'org.springframework', name: 'spring-webmvc', version:'4.0.4.RELEASE'
    compile group: 'org.springframework', name: 'spring-jdbc', version:'4.0.4.RELEASE'
    compile(group: 'org.springframework.data', name: 'spring-data-jpa', version:'1.5.2.RELEASE') {
            exclude(module: 'spring-aop')
    }
    compile group: 'javax.validation', name: 'validation-api', version:'1.0.0.GA'
    compile group: 'org.hibernate', name: 'hibernate-validator', version:'4.3.1.Final'
    compile group: 'org.hibernate', name: 'hibernate-core', version:'4.3.5.Final'
    compile group: 'org.hibernate', name: 'hibernate-entitymanager', version:'4.3.5.Final'
    compile group: 'org.hibernate.javax.persistence', name: 'hibernate-jpa-2.1-api', version:'1.0.0.Final'
    compile group: 'org.springframework', name: 'spring-orm', version:'4.0.4.RELEASE'
    compile group: 'org.slf4j', name: 'jcl-over-slf4j', version:'1.5.8'
    compile group: 'org.slf4j', name: 'slf4j-api', version:'1.5.8'
    compile group: 'org.slf4j', name: 'slf4j-log4j12', version:'1.5.8'
    compile group: 'log4j', name: 'log4j', version:'1.2.14'
    compile group: 'org.aspectj', name: 'aspectjrt', version:'1.7.4'
    compile group: 'cglib', name: 'cglib-nodep', version:'2.2'
    compile group: 'javax.inject', name: 'javax.inject', version:'1'
    compile group: 'postgresql', name: 'postgresql', version:'9.1-901.jdbc4'
    compile group: 'commons-dbcp', name: 'commons-dbcp', version:'1.4'
    compile group: 'jstl', name: 'jstl', version:'1.2'
    compile group: 'org.codehaus.jackson', name: 'jackson-mapper-asl', version:'1.9.9'
    compile group: 'org.apache.tiles', name: 'tiles-jsp', version:'2.2.2'
    compile group: 'org.apache.tiles', name: 'tiles-el', version:'2.2.2'
    compile group: 'org.apache.commons', name: 'commons-lang3', version:'3.3.2'
    compile group: 'net.sf.opencsv', name: 'opencsv', version:'2.3'
    compile group: 'org.apache.camel', name: 'camel-spring', version:'2.13.2'
    compile group: 'org.apache.camel', name: 'camel-spring-javaconfig', version:'2.13.2'
    compile group: 'org.apache.camel', name: 'camel-test-spring', version:'2.13.2'
    testCompile group: 'org.springframework', name: 'spring-test', version:'4.0.4.RELEASE'
    testCompile(group: 'junit', name: 'junit-dep', version:'4.10') {
exclude(module: 'hamcrest-core')
    }
    testCompile group: 'org.hamcrest', name: 'hamcrest-library', version:'1.3'
    testCompile group: 'org.mockito', name: 'mockito-core', version:'1.9.0'
    compile(group: 'javax.servlet', name: 'javax.servlet-api', version:'3.0.1') {
       /* This dependency was originally in the Maven provided scope, but the project was not of type war.
       This behavior is not yet supported by Gradle, so this dependency has been converted to a compile dependency.
       Please review and delete this closure when resolved. */
    }
    compile(group: 'javax.servlet.jsp', name: 'jsp-api', version:'2.2') {
       /* This dependency was originally in the Maven provided scope, but the project was not of type war.
       This behavior is not yet supported by Gradle, so this dependency has been converted to a compile dependency.
       Please review and delete this closure when resolved. */
    }
}

最佳答案

要工作,SLF4J 的 api 版本及其绑定(bind)版本应该兼容(通常版本相同)。

在运行时,使用的 SLF4J 绑定(bind)是 1.5.8,但加载的 SLF4J API 是 1.6/1.7 版本:

SLF4J: The requested version 1.5.8 by your slf4j binding is not compatible with [1.6, 1.7]

您可能有一个传递依赖项,可以提取 SLF4J 的 1.6/1.7 API 版本。
您还可以在运行时使用的类路径中指定此 jar。 检查两者。

要检查 Gradle 项目的依赖关系,您可以使用 gradle app:dependencies获取 gradle 项目的依赖关系树。

关于java.lang.AbstractMethodError : org. slf4j.impl.Log4jLoggerAdapter.log(ava/lang/Object;Ljava/lang/Throwable;)V,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44920668/

相关文章:

java - 在特定日期使用 (Spring @Scheduled) 运行作业

java - OAuth : Send Access Token and Get User data

java - 启动自动测试时 Play Framework 中的配置日志记录

java - 如何将slf4j日志更改为html链接

java - 如何使用 BigInteger 类在 Java 中实现无符号 64 位 int?

java - 翻转阵列部分

java - ObjectOutputStream 在 PlayerList.java 中不可用 - 无法获取表的数据

java - 如何在 log4j.xml 中对收件人隐藏发件人电子邮件地址?

grails 分离信息记录

java - log4j 将标准输出重定向到 DailyRollingFileAppender