首页 > 其他分享 >SLF4J: Class path contains multiple SLF4J bindings 问题解决

SLF4J: Class path contains multiple SLF4J bindings 问题解决

时间:2024-07-22 17:10:28浏览次数:14  
标签:INFO zookeeper multiple contains jar slf4j SLF4J org

背景:

springboot项目名称 test,在使用slf4j后,服务启动报错

 

报错信息:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/D:/Program%20Files/Java/.m2/repository/ch/qos/logback/logback-classic/1.2.7/logback-classic-1.2.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/D:/Program%20Files/Java/.m2/repository/org/slf4j/slf4j-log4j12/1.7.32/slf4j-log4j12-1.7.32.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 [ch.qos.logback.classic.util.ContextSelectorStaticBinder]

 

报错原因:

以上报错原因是包引用冲突,出现多个slf4j的实现。

logback-classic-1.2.7.jar 和 slf4j-log4j12-1.7.32.jar 冲突

查看SLF4J官方给出的解决冲突的方法:

http://www.slf4j.org/codes.html#multiple_bindings

<dependencies>
  <dependency>
    <groupId> org.apache.cassandra</groupId>
    <artifactId>cassandra-all</artifactId>
    <version>0.8.1</version>

    <exclusions>
      <exclusion> 
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
      </exclusion>
      <exclusion> 
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
      </exclusion>
    </exclusions> 

  </dependency>
</dependencies>

 

解决问题:

1 找到产生冲突的依赖

方法1:

打开终端,在test目录下运行下面命令,显示服务的所有依赖

mvn dependency:tree

查找到 slf4j-log4j12的引用,这里是zookeeper中的引用冲突了

[INFO] +- org.apache.zookeeper:zookeeper:jar:3.6.1:compile
[INFO] |  +- commons-lang:commons-lang:jar:2.6:compile
[INFO] |  +- org.apache.zookeeper:zookeeper-jute:jar:3.6.1:compile
[INFO] |  +- org.apache.yetus:audience-annotations:jar:0.5.0:compile
[INFO] |  +- io.netty:netty-transport-native-epoll:jar:4.1.70.Final:compile
[INFO] |  |  +- io.netty:netty-transport-native-unix-common:jar:4.1.70.Final:compile
[INFO] |  |  \- io.netty:netty-transport-classes-epoll:jar:4.1.70.Final:compile
[INFO] |  +- org.slf4j:slf4j-log4j12:jar:1.7.32:compile
[INFO] |  \- log4j:log4j:jar:1.2.17:compile

 

方法2:

 使用idead的Maven工具栏-》点击启动失败的服务test-》点击两个上箭头标识的“显示图”

放大依赖关系图,查找 slf4j-log4j12 位置,找到上级依赖

zookeeper -> slf4j-log4j12

 

2 将依赖中的slf4j排除

根据步骤1找到的冲突依赖是zookeeper中的引用出现冲突了,加入排除配置

        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.6.1</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

 

总结:

出现以上问题的原因是依赖冲突,我们解决问题分两步:

1. 找到冲突包所在位置

2. 排除冲突的依赖

 

标签:INFO,zookeeper,multiple,contains,jar,slf4j,SLF4J,org
From: https://www.cnblogs.com/etangyushan/p/18316386

相关文章

  • org.slf4j.Logger
    日志级别ERROR>WARN>INFO>DEBUG, 定义了INFO级别,DEBUG不被打印出来。打印方法 https://mp.weixin.qq.com/s?__biz=MzAxMjY5NDU2Ng==&mid=2651867278&idx=1&sn=5f7bf3aa6877526ff7001e190f4cf3a8&chksm=80490dc7b73e84d1fc9f7bd492a17f5cbe950941173ce0c95......
  • How to link multiple docker-compose services via network
    Howtolinkmultipledocker-composeservicesvianetworkNewscenario:SharinganetworkbetweenservicesIfyouwantdefineservicesinmultipledocker-compose.ymlfiles,andalsohavenetworkconnectivitybetweentheservices,youneedtoconfigureyou......
  • 1055 - Expression #9 of SELECT list is not in GROUP BY clause and contains nonag
    MySQL8的默认sql_mode包含了only_full_group_by,如果想要sql不按照这模式做检查,可以设置当前session的sql_mode值不包含oly_full_group_by;全局修改则使用以下sql--全局配置session级配置则去掉GlobalSETGLOBALsql_mode='ANSI_QUOTES,STRICT_ALL_TABLES,STRICT_TRANS_TAB......
  • 修复Scikit-learn中的`ValueError: Input contains NaN`
    @TOC博主默语带您GotoNewWorld.✍个人主页——默语的博客......
  • centos系统构建安装john导致的编译问题error: size of array element is not a multip
    blake2.h:112:5:error:sizeofarrayelementisnotamultipleofitsalignment112|blake2b_stateS[4][1];|^~~~~~~~~~~~~blake2.h:113:5:error:sizeofarrayelementisnotamultipleofitsalignment113|blake2b_stateR[1];......
  • 深入理解SLF4J与Logback以及Log4j的关系
    在Java开发中,日志记录是一个不可或缺的部分,它帮助开发者监控应用程序的运行状态和调试问题。在众多日志框架中,SLF4J(SimpleLoggingFacadeforJava)、Logback和Log4j是最为流行的几个。本文将简述它们之间的关系以及如何强制让不实现SLF4J的Log4j实现SLF4J。SLF4J简介SLF4......
  • Paper Reading: Genetic programming for multiple-feature construction on high-dim
    目录研究动机文章贡献预备知识本文方法MCIFC:一种多类无关的特征构建方法CDFC:一种多类相关特征构建方法实验结果数据集和实验设置多特征构造与单特征构造对比多树GP对比单树GPfilter对比混合方法类依赖对比类独立非GP对比基于GP的特征构建优点和创新点PaperReading是从......
  • @Slf4j注解的使用
    作用为了少写两行代码,不用每次都在类的最前边写上那个:privatestaticfinalLoggerlogger=LoggerFactory.getLogger(this.XXX.class);只需要在类前面添加注解@Slf4j,即可使用log日志的功能引入确保idea中有Lombok插件(IntelliJIDEA2020.3及以上版本已经内置Lombokplugin......
  • 安卓应用开发——Android Studio中This project contains Java compilation errors, w
    这个提示信息表明你的Java项目中存在编译错误,这些错误可能会导致自定义视图(customviews)的渲染失败。要解决这个问题,你需要先修复这些编译问题。以下是一些步骤,你可以按照这些步骤来查找并修复Java编译错误:查看编译错误:在你的集成开发环境(IDE)中,通常会有一个编译错误或警......
  • 解决vue项目报错 ERROR in Conflict:Multiple assets emit different content to the
    vue-cli创建项目ERROR in Conflict: Multiple assets emit different content to the same filename index.html问题的解决办法用vue-cli正常来创建新的项目在运行npmrundev或者npmrunserve有以下报错:ERRORinConflict:Multipleassetsemitdifferentco......