草庐IT

java - SLF4J:slf4j-api 1.6.x(或更高版本)与此绑定(bind)不兼容

coder 2023-09-02 原文

2015-09-28 10:02:21,890 ERROR [STDERR] (HDScanner) SLF4J: slf4j-api 1.6.x (or later) is incompatible with this binding.
2015-09-28 10:02:21,891 ERROR [STDERR] (HDScanner) SLF4J: Your binding is version 1.5.5 or earlier.
2015-09-28 10:02:21,891 ERROR [STDERR] (HDScanner) SLF4J: Upgrade your binding to version 1.6.x.
2015-09-28 10:02:21,891 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/metasolv-web]] (HDScanner) Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder;

如何修复此错误?另外,在我的应用程序中,我没有在任何地方使用 slf4j,只有 Dozer 库使用它。从下面的堆栈跟踪中,我看到 spring 应用程序正在使用 slf4j,但为什么它不自己加载一个?

java.lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder;
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:107)
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:295)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:269)
    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.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:191)

最佳答案

我不得不从 dozer 库中排除 slf4j 依赖项,并将依赖项直接添加到 POM 文件中。

如@Powerlord 所述,我必须添加两个库,一个用于核心 slf4j,另一个是绑定(bind)库。

下面的 Maven 依赖项。

       <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.6</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.6</version>
        </dependency>

        <dependency>
            <groupId>net.sf.dozer</groupId>
            <artifactId>dozer</artifactId>
            <version>5.5.1</version>
            <exclusions>
                <exclusion>
                    <artifactId>jcl-over-slf4j</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>slf4j-api</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>

关于java - SLF4J:slf4j-api 1.6.x(或更高版本)与此绑定(bind)不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32826250/

有关java - SLF4J:slf4j-api 1.6.x(或更高版本)与此绑定(bind)不兼容的更多相关文章

  1. javascript - AngularJS:$scope 与此:$scope 的用途是什么? - 2

    我在AngularJSstyleguide中找到了这个Preferusingcontrollerassyntaxandcapturethisusingavariable:这意味着我可以通过这个将我的所有功能和模型分配给Controller,并通过View中的别名进行访问。如果这样做,我发现我真的不再需要$scope了。一个异常(exception)是当我想访问$rootScope中的内容时。因此,考虑到引用的建议,如果我对访问$rootScope中的任何内容不感兴趣,我应该什么时候使用$scope?也就是说,我是否应该将所有内容都移动到Controller的this中?如果不是,那么什

  2. xml - 如何在 xslt 2.0 中获取与此场景相关的特定 XML 元素索引? - 2

    我想使用XSLT2.0将一个xml转换为另一个xml。在这样做的同时,我想找出一些与我在此处解释的场景相关的XML元素索引...这是XML文档:所以,我想找到元素索引。如果我的xml文档包含此元素,那么我想创建一个名为“Bookmark”的元素并设置属性“index”。如果我的xml文档不包含此元素,请不要执行任何操作...索引计数从零开始,我需要省略来自计算索引的元素。请参阅我对xml文档的评论。我需要的输出是: 最佳答案 试试这个……...或者这个没有函数的等价物... 关于xml-

  3. 解决---设备“VMnet0”上的网桥没有运行。该虚拟机无法与此主机或网络上的其他主机进行通信。 无法连接虚拟设备“Ethernet0”。 - 2

    问题描述:\quad\quad由于之前安装过VMware,但是卸载后从新安装导致虚拟机的虚拟网络编辑器没有桥接模式,即只有网络适配器网络类型VMnet1Host-only(仅主机)VMnet8NAT\quad\quad这导致你所安装的虚拟机(如Ubuntu)就不能与你的电脑再同一个网段,也就是虚拟机与你的电脑不能够互相ping通,你的虚拟机里面就不能够上网。而如何从新安装好桥接模式就是我们所迫切需要解决的问题。原因分析:主要是我们之前安装过VMware,卸载后没有卸载干净。且我们需要安装的是桥接服务而不是网卡\quad注意:仅仅在VMware左上角的编辑中点击虚拟网络编辑器并通过添加网络添加V

  4. c# - 我如何将 Sevenzipsharp 与此代码一起使用? - 2

    iv尝试了许多不同的方法来让它工作,我让它基本工作,但我无法得到WaitForExit();就像他们在这里一样工作......那么我如何将其转换为与sevenzip一起工作?因为我无法让它工作,而且我的SFX已设置密码,因此除非使用该程序,否则无法访问它们,至于添加7z.DLL,我无法添加它,因为我收到错误消息:Areferenceto7za.dllcouldnotbeadded.pleasemakesurethatthefileisaccessible,andthatitisavalidassemblyorCOMcomponent.stringtempFolder=Environme

  5. c# - entityframework 已经有一个与此命令关联的打开的 DataReader,必须先将其关闭 - 2

    我有以下代码从客户表中检索数据varcustomers=context.CustomerEntities.Include("Addresses").Select(Mapper.Map).ToList();映射器函数,将实体对象映射到业务对象,看起来像这样internalstaticCustomerMap(CustomerEntityentity){if(entity==null)returnnull;returnnewCustomer{Id=entity.Id,Name=entity.Name,Addresses=Map(entity.Addresses)};}现在,上面的代码运行良好

  6. java - SLF4J - 绑定(bind)被同一应用程序服务器上的其他应用程序覆盖 - 2

    我的一个项目被打包为一个EAR文件,其中包含SLF4JAPI(1.7.5)以及作为其实现的logback库(logback-core1.0.13和logback-classic1.0.13)。当我(过去)部署我的项目时,SLF4J的LoggerFactory发现logback可能是绑定(bind)的,并且使用了正确的记录器(即logback)。现在我有一个资源连接器(activemq-rar-5.8.0.rar),它部署在我自己的EAR文件之前(因为EAR文件需要RAR)。不幸的是,这个RAR包含它自己的SLF4J实现(slf4j-api-1.6.6.jarslf4j-log4j12-

  7. java - slf4j/logback FileAppender 在 eclipse 工作区中的编写 - 2

    我有一个eclipse使用slf4j的RCP应用程序/logback捕获所有日志消息。现在我配置了以下文件附加器:softmodeler_client.logtrue[%date]%level:%logger-%m%n这会将日志文件写入应用程序安装目录。一些客户不允许在安装目录中进行写访问。在这种情况下,我们重定向工作区和配置目录,在Applicationname.ini文件中定义以下内容:-data@user.home/AppData/Roaming/Applicationname/workspace-configuration@user.home/AppData/Roaming/A

  8. java - 如何使用 Spring Boot/slf4j 在日志文件的名称中包含日期? - 2

    和SettingalogfilenametoincludecurrentdateinLog4j是同一个问题,但是如何应用到slf4j自带的SpringBoot中呢?应用程序属性spring.application.name=keywordslogging.file=logs/${spring.application.name}.log 最佳答案 如所述hereSpringBoothasaLoggingSystemabstractionthatattemptstoconfigureloggingbasedonthecontentoft

  9. java - slf4j-log4j12 与 log4j 之间的区别 - 2

    在项目的pom.xml中,我看到如下所示的依赖项org.slf4jslf4j-api1.7.5org.slf4jslf4j-log4j121.7.5log4jlog4j1.2.17有人可以告诉我slf4j-log4j12和log4j之间有什么区别吗? 最佳答案 Log4j1.2slf4j-log4j12提供了SLF4J和Log4j1.2之间的桥梁,以便SLF4J知道如何使用Log4j进行日志记录。您正在使用Log4j1.2。该版本的绑定(bind)由SLF4J项目维护。这是来自theSLF4Jdocs的摘要:SLF4Jsupport

  10. java - 如何绑定(bind)SLF4J和Log4J? - 2

    我正在尝试使用slf4j+log4j设置一个项目,但该死的东西就是不起作用......我不断收到异常:FailedtoinstantiateSLF4JLoggerFactoryReportedexception:java.lang.NoClassDefFoundError:org/apache/log4j/Levelatorg.slf4j.LoggerFactory.bind(LoggerFactory.java:129)atorg.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:108)atorg.slf4j.

随机推荐