解决jar包冲突

报错信息:

[20180606T093521+0800][WARN]{}(qtp623247230-350|org.eclipse.jetty.util.thread.QueuedThreadPool.run:654)-Unexpected thread death: org.eclipse.jetty.util.thread.QueuedThreadPool$2@1b9f290d in qtp623247230{STARTED,8<=26<=200,i=1,q=0}
Exception in thread "qtp623247230-350" java.lang.NoClassDefFoundError: ch/qos/logback/core/status/ErrorStatus
at ch.qos.logback.core.recovery.ResilientOutputStreamBase.postIOFailure(ResilientOutputStreamBase.java:100)
at ch.qos.logback.core.recovery.ResilientOutputStreamBase.write(ResilientOutputStreamBase.java:55)
at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2039)
at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1051)
at net.logstash.logback.composite.CompositeJsonFormatter.writeEventToGenerator(CompositeJsonFormatter.java:171)
at net.logstash.logback.composite.CompositeJsonFormatter.writeEventToOutputStream(CompositeJsonFormatter.java:146)
at net.logstash.logback.encoder.CompositeJsonEncoder.doEncode(CompositeJsonEncoder.java:73)
at net.logstash.logback.encoder.CompositeJsonEncoder.doEncode(CompositeJsonEncoder.java:30)
at ch.qos.logback.core.OutputStreamAppender.writeOut(OutputStreamAppender.java:187)
at ch.qos.logback.core.FileAppender.writeOut(FileAppender.java:279)
at ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:212)
at ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:235)
at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:100)
at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84)
at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)
at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:270)
at ch.qos.logback.classic.Logger.callAppenders(Logger.java:257)
at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)
at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)
at ch.qos.logback.classic.Logger.log(Logger.java:765)
at org.eclipse.jetty.util.log.JettyAwareLogger.log(JettyAwareLogger.java:620)
at org.eclipse.jetty.util.log.JettyAwareLogger.warn(JettyAwareLogger.java:413)
at org.eclipse.jetty.util.log.Slf4jLog.warn(Slf4jLog.java:59)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:654)
at java.lang.Thread.run(Thread.java:748)

在网上查应该是jar包冲突的问题,所以开始利用工具查看jar包引用及版本。

项目使用maven,使用maven查看module jar包依赖,找到了logback-core包的依赖,是

logstash-logback-encoder这个包依赖了,点击进去查看pom文件中的logback-core版本,是1.1.6,但是我查看项目打出的war

包,版本是1.1.11,所以这里应该是冲突了,项目使用的是spring-boot,spring-boot自带了日志包,也是logback,于是在spring-boot-starter-logging中找到了logback-classic的依赖,而logback-classic又依赖于logback-core,这里logback-core是1.1.11版本的,于是找到了logback-core冲突的地方,我们使用spring-boot自带的logback配置,所以在

logstash-logback-encoder的配置中,exclusion掉logback-core和logbakc-classic,解决掉了冲突问题。

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>4.7</version>
    <exclusions>
        <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </exclusion>
    </exclusions>
</dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值