java.lang.NoSuchMethodError:ch.qos.logback.core.rolling.helper.FileNamePattern.getDateTokenConverter()

问题描述 投票:3回答:2

我使用我的应用程序如下: -

[INFO] +- ch.qos.logback:logback-core:jar:1.1.7:compile
[INFO] +- ch.qos.logback:logback-classic:jar:1.1.7:compile
[INFO] +- log4j:log4j:jar:1.2.13:compile
[INFO] +- org.slf4j:slf4j-api:jar:1.6.1:compile
[INFO] +- org.slf4j:jcl-over-slf4j:jar:1.6.1:compile

当我开始与我的应用程序tomcat的。我收到以下错误: -

Failed to instantiate [ch.qos.logback.classic.LoggerContext]
Reported exception:
java.lang.NoSuchMethodError: ch.qos.logback.core.rolling.helper.FileNamePattern.getDateTokenConverter()Lch/qos/logback/core/rolling/helper/DateTokenConverter;
    at ch.qos.logback.core.rolling.IntervalledTimeBasedFileNamingAndTriggeringPolicyBase.start(IntervalledTimeBasedFileNamingAndTriggeringPolicyBase.java:24)
    at ch.qos.logback.core.rolling.SizeAndIntervalledTimeBasedFNATP.start(SizeAndIntervalledTimeBasedFNATP.java:21)
    at ch.qos.logback.core.rolling.TimeBasedRollingPolicy.start(TimeBasedRollingPolicy.java:95)
    at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:161)
    at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309)
    at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193)
    at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:179)
    at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
    at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:155)
    at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:142)
    at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:103)
    at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
    at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)
    at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)
    at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
    at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:121)
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:268)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:241)
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:156)
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:645)
    at org.springframework.core.SpringProperties.<clinit>(SpringProperties.java:51)
    at org.springframework.beans.CachedIntrospectionResults.<clinit>(CachedIntrospectionResults.java:97)
    at org.springframework.web.util.IntrospectorCleanupListener.contextInitialized(IntrospectorCleanupListener.java:75)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4716)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5178)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:952)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1823)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
SLF4J: The requested version 1.7.16 by your slf4j binding is not compatible with [1.6]

当我搜索“ch.qos.logback.core.rolling.helper.FileNamePattern.getDateTokenConverter()”中的logback。我才知道,因为这方法不利用的logback较新的版本。

什么是它解决方法?

java log4j logback slf4j
2个回答
2
投票

似乎tomcat的加载logback的多个版本。在堆栈跟踪引用的代码在这个commit辗转回到2011年。所以,你必须检查由tomcat的加载库或降级的logback版本1.0.0


0
投票

文档的logback会告诉,增加API和绑定的Maven /摇篮。所以,你必须作出POM两个条目。一个SLF4J的API,以及一个结合实际的记录,这可能是Log4J的或的logback或java.util.logger程序等,这似乎有些其他jar已经加载日志结合这是不符合当前加载兼容。所以只要删除POM结合部。

© www.soinside.com 2019 - 2024. All rights reserved.