当前位置: 首页 > 面试题库 >

NoClassDefFoundError:org / slf4j / impl / StaticLoggerBinder

裘光启
2023-03-14
问题内容

我正在尝试运行此处给出的示例图块示例。

以下是我的POM.xml

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-api</artifactId>
            <version>2.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-core</artifactId>
            <version>2.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-jsp</artifactId>
            <version>2.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.5.2</version>
        </dependency>

当我尝试运行示例时,抛出以下错误:

Sep 17, 2010 11:59:43 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class      org.apache.tiles.web.startup.TilesListener
java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:131)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
at org.apache.tiles.web.startup.TilesListener.<init>(TilesListener.java:49)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)

任何想法?

为此,我花了30分钟的时间进行谷歌搜索,但找不到可能的解决方案。

请帮我…


问题答案:

您已经包括了对SLF4J API的依赖关系,这是您在应用程序中用于日志记录的内容,但是您还必须包括一个实现实际日志记录功能的实现。

例如,要通过Log4J登录,您可以添加以下依赖项:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.5.2</version>
    </dependency>

推荐的实现方式应为logback-classic,它是Log4j的后继产品,它是由制造SLF4J和Log4J的人制造的:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>0.9.24</version>
</dependency>

注意:版本可能不正确。



 类似资料:
  • 我在我的多模块maven项目中面临Lombok的问题。我有两个类: 还有一个父maven项目,其中定义了lombok依赖项。还有一个子maven项目,其中我将父项目定义为maven父项目。 当我在 类中使用生成的实例时,会发生编译错误: 我可以通过两种方式解决问题: < li >我自己手工创建了一个名为“log”的私有字段。 < li >我在子maven项目中定义了Lombok依赖项。 为什么这样

  • 我有一个Maven项目,我想使用log4j2和slf4j。所以我添加了这个依赖项: 就我所知,它似乎起作用了。但我的问题是关于log4j-slf4j-impl的可传递依赖关系。 为什么IntelliJ显示log4j-core引入了log4j-api,但由于是重复的,所以忽略了它(我相信下面的截图是这么说的)?我该如何预防呢?

  • 我想使用log4j2作为我的slf4j日志记录应用程序的日志记录实现。 文档说明我必须依赖于log4j-slf4j-impl和log4j-core。 我的问题是为什么log4j-slf4j-impl不依赖于log4j-core(因此带来了它绝对需要的库)?

  • applicationContext.xml 如果有人能指出我代码中的错误,真的很感激。

  • 问题内容: 我正在尝试使用此库运行示例项目,但出现以下错误: 我在 libs* 和 classpath中 添加了 commons-lang-2.6.jar 和 commons- lang3-3.1-sources.jar *** 主班: 我已提及以下链接: java.lang.ClassNotFoundException:来自BaseClassLoader的org.apache.commons.l

  • 问题内容: 我是 JasperReports的 新手,我想将 JasperReports 集成到我的Java程序中,因此,当我单击“打印”按钮时,程序将显示报告。但是,当我单击按钮时,出现 NoClassDefFoundError 。 码 运行时错误 问题答案: 您已经错过了jar文件“ org-apache-commons-logging.jar”。将此jar加载到您的项目中。该问题将得到解决。