NoClassDefFoundError:org/slf4j/Logger

2023-11-21

我将 Log4J2 添加到我的应用程序中。我将所有 Log4J2 .jar 文件复制到 LIB 目录并创建 Log4J2.xml 文件来支持它。我的代码已更新以导入必要的日志管理器和记录器 API。然后,我添加了静态最终记录器方法,并在代码中调用了记录器 api。一切都在 Eclipse 中编译文件。我继续在我的 DEV 计算机上启动服务器来验证它。启动我的服务器后,我收到以下错误:`

2014-10-19 21:39:31.753:INFO:oejs.Server:jetty-8.1.14.v20131031
2014-10-19 21:39:32.680:WARN:oejuc.AbstractLifeCycle:FAILED FoundationStartup: java.lang.NoClassDefFoundError: org/slf4j/Logger
java.lang.NoClassDefFoundError: org/slf4j/Logger
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:474)
    at com.global.service.FoundationStartup.<clinit>(FoundationStartup.java:19)
    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)
    at org.eclipse.jetty.servlet.ServletContextHandler$Context.createServlet(ServletContextHandler.java:1075)
    at org.eclipse.jetty.servlet.ServletHolder.newInstance(ServletHolder.java:957)
    at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:514)
    at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:344)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:791)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265)
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1221)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)
    at org.eclipse.jetty.server.Server.doStart(Server.java:282)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at org.eclipse.wst.server.preview.internal.PreviewStarter.run(PreviewStarter.java:72)
    at org.eclipse.wst.server.preview.internal.PreviewStarter.main(PreviewStarter.java:29)
Caused by: 
java.lang.ClassNotFoundException: org.slf4j.Logger
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:424)
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:377)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:474)
    at com.global.service.FoundationStartup.<clinit>(FoundationStartup.java:19)
    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)
    at org.eclipse.jetty.servlet.ServletContextHandler$Context.createServlet(ServletContextHandler.java:1075)
    at org.eclipse.jetty.servlet.ServletHolder.newInstance(ServletHolder.java:957)
    at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:514)
    at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:344)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:791)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265)
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1221)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)
    at org.eclipse.jetty.server.Server.doStart(Server.java:282)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at org.eclipse.wst.server.preview.internal.PreviewStarter.run(PreviewStarter.java:72)
    at org.eclipse.wst.server.preview.internal.PreviewStarter.main(PreviewStarter.java:29)`

我的配置有什么问题吗?我是否需要下载另一个 .JAR 或者这是一个配置问题?

谢谢, 史蒂芬.

我将 slf4j .jar 复制到我的库中并重新运行服务器。出现以下错误。你知道为什么现在会抛出这些错误吗?

.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)

答案隐藏在manual page:

一起使用 Log4j 2 SLF4J 绑定 (log4j-slf4j-impl-2.0.jar) 使用 SLF4J 适配器 (log4j-to-slf4j-2.0.jar) 永远不应该 已尝试,因为这将导致事件在之间无休止地路由 SLF4J 和 Log4j 2。

你想要keeplog4j-slf4j-impl-2.xx.jar 和removelog4j-to-slf4j-2.xx.jar。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NoClassDefFoundError:org/slf4j/Logger 的相关文章

随机推荐

  • 在没有故事板的情况下启动ios项目

    我在使用 xibs 而不是故事板启动 iOS 应用程序时遇到了一些麻烦 问题是我遇到黑屏并且第一个视图控制器没有被调用 添加断点viewDidLoad方法 在应用程序委托标头中 我声明了这一点 property strong nonatom
  • linq 异常:只能从 LINQ to Entities 调用此函数

    我正在尝试获取保存在缓存中的数据 但它在 select new FilterSsrsLog 行上引发异常 例外 此函数只能从 LINQ to Entities 调用 List
  • 自动导入包的顺序和歧义

    JLS 第 7 章 软件包 一个包由许多编译单元组成 第 7 3 节 一个编译单元自动有权访问其包中声明的所有类型并且自动导入预定义包 java lang 中声明的所有公共类型 让我们假设以下代码 package com example p
  • jQuery 日期时间选择器 MVC3

    我的模型中有这个字段 DataType DataType DateTime Required ErrorMessage Expire is required public DateTime Expire get set 在我看来 Html
  • 在 JavaScript 中定义全局对象的独立于实现的版本

    我正在尝试定义globalJavaScript 中的对象在一行中如下所示 var global this global this 上述声明是在全局范围内的 因此在浏览器中this指针是一个别名window目的 假设它是在当前网页上下文中执行
  • 将 key=value 对转换回 Python 字典

    有一个日志文件 其中的文本以空格分隔key value对 每行最初都是从 Python 字典中的数据序列化的 类似于 join f k v r for k v in d items 键始终只是字符串 这些值可以是任何值ast literal
  • Keras 自定义指标迭代

    我对 Keras 还很陌生 我正在尝试定义自己的指标 它计算一致性指数 这是回归问题的度量 def cindex score y true y pred sum 0 pair 0 for i in range 1 len y true fo
  • 如何在 Angular/ionic 网站中实施 AMP?

    最近我听说了 Accelerated Mobile Pages 项目 并阅读了一些有关它的信息 我想知道如何为基于 Ionic 和 Angular 构建的现有网站实现它 基本上没有几乎可能的解决方案可以做到这一点 如果你检查文档here 让
  • Android Studio 无法启动

    安装Android Studio后 我启动了它 但它没有开始 我打开任务管理器看到多了两个执行顺序 Cmd exe and conhost exe 我的系统版本是Windows 7 Ultimate 64bit 有什么想法如何解决这个问题吗
  • 在 Web API / APIController 中控制序列化

    在 ASP NET Web API 中哪里可以指定自定义序列化 反序列化 我们应用程序的吞吐量需要消息的快速序列化 反序列化 因此我们需要严格控制这部分代码以使用我们的自制程序或 OSS 我检查了各种来源 例如this这解释了如何创建自定义
  • 当注释有参数时,CDI 拦截器不起作用

    我正在尝试实现一个 Restricted注释 以用户只有在登录并具有特定角色时才能访问它们的方式保护控制器方法 我在 Tomcat 7 上使用 JSF 和 CDI 所以没有 EJB 只要注释接口不指定任何参数 拦截器就会被调用 一旦我添加一
  • JAXB 文档注释

    我有以下带有 JAXB XMLRootElement 注释的 java 类 XmlRootElement name ClientData public class ClientData The first address field of
  • 由于内存问题导致realloc失败时如何处理?

    问题说明了一切 但这是一个例子 typedef struct mutable t int count max void data mutable t void pushMutable mutable t m void object if m
  • 将字符串中的一些小写字母更改为大写

    index 0 2 5 s I am like stackoverflow python for i in index s s i upper print s IndexError string index out of range 我知道
  • 使用 getopt 向命令行选项提供两个参数[重复]

    这个问题在这里已经有答案了 使用时是否有其他方法将两个参数作为单个字符串传递给选项getopt 通常我会执行以下操作 command o key value command arguments 然后我必须明确地分割参数字符串 while o
  • 如何获取ng-bootstrap中Dropdown的值?

    我正在使用 ng bootstrap 我想在选择时获取下拉列表的值 div class col text right div class d inline block div div
  • 如何从部分视图获取父视图

    我有一个部分视图作为 Layout cshtml 的一部分 以便它可以在多个页面上呈现 将部分视图视为显示在网站每个页面上的菜单 当单击部分视图菜单中的这些链接之一时 我只能在称为部分视图的操作方法中访问 查看 如它的名称等 但我真正需要的
  • 无法更改视图的默认布局边距

    从ios 8 0开始 视图有额外的layoutMargins默认情况下 每边都有 8 分值 当我尝试更改边距时viewDidLoad它似乎对孩子的看法没有影响 override func viewDidLoad super viewDidL
  • Python lambda函数打印 at 0x7fcbbc740668>而不是值

    我是 python 的初学者 我正在研究 lambda 函数 我正在编写一个程序 使用 lambda 函数来打印输入字符的 ascii 值 1 的字符 我的代码是 usr bin python import sys try word sys
  • NoClassDefFoundError:org/slf4j/Logger

    我将 Log4J2 添加到我的应用程序中 我将所有 Log4J2 jar 文件复制到 LIB 目录并创建 Log4J2 xml 文件来支持它 我的代码已更新以导入必要的日志管理器和记录器 API 然后 我添加了静态最终记录器方法 并在代码中