当前位置: 首页 > news >正文

SLF4J: Class path contains multiple SLF4J bindings.解决

背景

项目正常运行几年,近期优化调整修复漏洞,依赖升级后clean+install 重启发现项目启动失败,访问所有接口都报错404
在这里插入图片描述

错误信息

output输出异常信息截图
在这里插入图片描述
tomcat 打印异常信息截图
在这里插入图片描述
output打印异常信息详情

D:\javaRuanJian\Tomcat\apache-tomcat-8.5.76\bin\catalina.bat run
[2023-12-28 04:33:53,489] Artifact mams-rest:war exploded: Waiting for server connection to start artifact deployment...
Using CATALINA_BASE:   "C:\Users\xxx\AppData\Local\JetBrains\IntelliJIdea2020.3\tomcat\f0fc51a6-6a53-43a0-8dbf-2d223ea74432"
Using CATALINA_HOME:   "D:\javaRuanJian\Tomcat\apache-tomcat-8.5.76"
Using CATALINA_TMPDIR: "D:\javaRuanJian\Tomcat\apache-tomcat-8.5.76\temp"
Using JRE_HOME:        "D:\javaRuanJian\stibo\jdk1.8"
Using CLASSPATH:       "D:\javaRuanJian\Tomcat\apache-tomcat-8.5.76\bin\bootstrap.jar;D:\javaRuanJian\Tomcat\apache-tomcat-8.5.76\bin\tomcat-juli.jar"
Using CATALINA_OPTS:   ""
Connected to the target VM, address: '127.0.0.1:52143', transport: 'socket'
28-Dec-2023 16:33:57.599 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/8.5.76
28-Dec-2023 16:33:57.604 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建:        Feb 23 2022 17:59:11 UTC
28-Dec-2023 16:33:57.604 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号:      8.5.76.0
28-Dec-2023 16:33:57.604 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称:      Windows 10
28-Dec-2023 16:33:57.604 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本:           10.0
28-Dec-2023 16:33:57.604 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构:              amd64
28-Dec-2023 16:33:57.604 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量:     D:\javaRuanJian\stibo\jdk1.8\jre
28-Dec-2023 16:33:57.605 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本:    1.8.0_121-b13
28-Dec-2023 16:33:57.605 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商:        Oracle Corporation
28-Dec-2023 16:33:57.605 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:     C:\Users\zhuyanming5\AppData\Local\JetBrains\IntelliJIdea2020.3\tomcat\f0fc51a6-6a53-43a0-8dbf-2d223ea74432
28-Dec-2023 16:33:57.605 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:     D:\javaRuanJian\Tomcat\apache-tomcat-8.5.76
28-Dec-2023 16:33:57.605 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djava.util.logging.config.file=C:\Users\zhuyanming5\AppData\Local\JetBrains\IntelliJIdea2020.3\tomcat\f0fc51a6-6a53-43a0-8dbf-2d223ea74432\conf\logging.properties
28-Dec-2023 16:33:57.606 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
28-Dec-2023 16:33:57.606 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:52143,suspend=y,server=n
28-Dec-2023 16:33:57.606 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -javaagent:C:\Users\zhuyanming5\AppData\Local\JetBrains\IntelliJIdea2020.3\captureAgent\debugger-agent.jar
28-Dec-2023 16:33:57.606 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcom.sun.management.jmxremote=
28-Dec-2023 16:33:57.606 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcom.sun.management.jmxremote.port=1097
28-Dec-2023 16:33:57.606 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcom.sun.management.jmxremote.ssl=false
28-Dec-2023 16:33:57.607 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcom.sun.management.jmxremote.password.file=C:\Users\zhuyanming5\AppData\Local\JetBrains\IntelliJIdea2020.3\tomcat\f0fc51a6-6a53-43a0-8dbf-2d223ea74432\jmxremote.password
28-Dec-2023 16:33:57.607 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcom.sun.management.jmxremote.access.file=C:\Users\zhuyanming5\AppData\Local\JetBrains\IntelliJIdea2020.3\tomcat\f0fc51a6-6a53-43a0-8dbf-2d223ea74432\jmxremote.access
28-Dec-2023 16:33:57.607 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djava.rmi.server.hostname=127.0.0.1
28-Dec-2023 16:33:57.607 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djdk.tls.ephemeralDHKeySize=2048
28-Dec-2023 16:33:57.607 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
28-Dec-2023 16:33:57.607 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dignore.endorsed.dirs=
28-Dec-2023 16:33:57.608 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcatalina.base=C:\Users\zhuyanming5\AppData\Local\JetBrains\IntelliJIdea2020.3\tomcat\f0fc51a6-6a53-43a0-8dbf-2d223ea74432
28-Dec-2023 16:33:57.608 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcatalina.home=D:\javaRuanJian\Tomcat\apache-tomcat-8.5.76
28-Dec-2023 16:33:57.608 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djava.io.tmpdir=D:\javaRuanJian\Tomcat\apache-tomcat-8.5.76\temp
28-Dec-2023 16:33:57.608 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用APR版本[1.7.0]加载了基于APR的Apache Tomcat本机库[1.2.31]。
28-Dec-2023 16:33:57.608 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]。
28-Dec-2023 16:33:57.609 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true]
28-Dec-2023 16:33:57.616 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL成功初始化 [OpenSSL 1.1.1l  24 Aug 2021]
28-Dec-2023 16:33:57.865 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8082"]
28-Dec-2023 16:33:58.085 信息 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 1275 ms
28-Dec-2023 16:33:58.178 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina]
28-Dec-2023 16:33:58.179 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/8.5.76]
28-Dec-2023 16:33:58.198 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8082"]
28-Dec-2023 16:33:58.296 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 208 ms
Connected to server
[2023-12-28 04:33:58,687] Artifact mams-rest:war exploded: Artifact is being deployed, please wait...
28-Dec-2023 16:34:08.251 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:\javaRuanJian\Tomcat\apache-tomcat-8.5.76\webapps\manager]
28-Dec-2023 16:34:09.144 信息 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
28-Dec-2023 16:34:09.612 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[D:\javaRuanJian\Tomcat\apache-tomcat-8.5.76\webapps\manager]的部署已在[1,354]毫秒内完成
28-Dec-2023 16:34:53.859 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/D:/JavaWork/HuaRun/GZEngine/gzengine/mams/mams-rest/target/mams-rest/WEB-INF/lib/log4j-slf4j-impl-2.11.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/D:/JavaWork/HuaRun/GZEngine/gzengine/mams/mams-rest/target/mams-rest/WEB-INF/lib/logback-classic-1.2.11.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 [org.apache.logging.slf4j.Log4jLoggerFactory]
28-Dec-2023 16:34:54.976 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件
28-Dec-2023 16:34:54.978 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 由于之前的错误,Context[/mams-rest]启动失败
[2023-12-28 04:34:55,117] Artifact mams-rest:war exploded: Error during artifact deployment. See server log for details.

原因分析

1.接口404一般是访问路径不对,找不到对应的资源,反复确认路径无问题,打印断点接口也没有进来,推断tomcat启动起来,项目没有启动起来,具体要看项目层面的output日志,和tomcat层面的日志
2.tomcat日志报错显示栈溢出,导致栈溢出的原因很多,最常见的就是死循环。
3.output日志中的错误信息就比较明显了:Class path contains multiple SLF4J bindings. (类路径包含多个SLF4J绑定。),下面两行打印了具体包。所以基本可以判断是包冲突导致,需要排除不需要的包

问题解决

1.快速查看哪个依赖包含异常包,推荐使用idea的Maven Helper插件(如果没有安装,搜索install即可,这里不做赘述)
在这里插入图片描述
2.安装完Maven Helper插件,打开项目pom.xml文件,可以看到依赖分析按钮
在这里插入图片描述
3.点击依赖分析,搜索异常包,右键,排除
在这里插入图片描述
4.排除后更新maven依赖,重新clean+install项目正常启动

总结

该方案可以快速解决java依赖冲突问题,一般依赖冲突问题都可复用此方案
Maven Helper插件很好用,详细功能可自行百度 

相关文章:

  • SpringBoot整合Mybatis遇到的常见问题及解决方案
  • 【Midjourney】Midjourney根据prompt提示词生成人物图片
  • 【Linux】修复 Linux 错误 - 文件过大
  • java freemarker 动态生成excel文件
  • 【leetcode150】逆波兰表达式求值Java代码讲解
  • vue大屏-列表自动滚动vue-seamless-scroll
  • mysql二进制对应ef中实体表字段类型
  • git 学习 之一个规范的 commit 如何写
  • 构建创新学习体验:企业培训系统技术深度解析
  • 【Java EE初阶四】锁及synchronized关键字
  • Java正则表达式
  • 「Verilog学习笔记」超前进位加法器
  • CUDA驱动深度学习发展 - 技术全解与实战
  • 五分钟学会SQL:基础入门
  • 探索Apache Commons Imaging处理图像
  • angular学习第一篇-----环境搭建
  • gitlab-ci配置详解(一)
  • markdown编辑器简评
  • PHP 的 SAPI 是个什么东西
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 大快搜索数据爬虫技术实例安装教学篇
  • 当SetTimeout遇到了字符串
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 学习笔记TF060:图像语音结合,看图说话
  • 译自由幺半群
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • (12)目标检测_SSD基于pytorch搭建代码
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (待修改)PyG安装步骤
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (一)SpringBoot3---尚硅谷总结
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)jQuery 基础
  • .cfg\.dat\.mak(持续补充)
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .net快速开发框架源码分享
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [Android]Android P(9) WIFI学习笔记 - 扫描 (1)
  • [C++]类和对象(中)
  • [C语言]编译和链接
  • [echarts] y轴不显示0
  • [HDU 3555] Bomb [数位DP]
  • [hive] posexplode函数
  • [Hive] 常见函数
  • [HNOI2008]Cards
  • [HTTP]HTTP协议的状态码