NoClassDefFoundError:org / slf4j / Logger [英] NoClassDefFoundError: org/slf4j/Logger
问题描述
2014-10-19 21:39:31.753:INFO:oejs。服务器:jetty-8.1.14.v20131031
2014-10-19 21:39:32.680:WARN:oejuc.AbstractLifeCycle:FAILED FoundationStartup:java.lang.NoClassDefFoundError:org / slf4j / Logger
java。 l 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)
java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
在java.lang.Cl ass.newInstance(未知源)
在org.eclipse.jetty.servlet.ServletContextHandler $ Context.createServlet(ServletContextHandler.java:1075)
在org.eclipse.jetty.servlet.ServletHolder.newInstance(ServletHolder .java:957)
在org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:514)
在org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:344 )
在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
在org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:791)$在$ org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1221)
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717)
在org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454)
在org。 eclipse.jetty.util.com ponent.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
在org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)
在org.eclipse.jetty.util。 component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
在org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)
在org.eclipse.jetty.server。 Server.doStart(Server.java:282)
在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
在org.eclipse.wst.server.preview。 internal.PreviewStarter.run(PreviewStarter.java:72)
在org.eclipse.wst.server.preview.internal.PreviewStarter.main(PreviewStarter.java:29)
导致:
java.lang.ClassNotFoundException:org.slf4j.Logger
在java.net.URLClassLoader $ 1.run(未知来源)
在java.net.URLClassLoader $ 1.run(未知来源)
at java.security.AccessController.doPrivileged(Native Method)
在java.net.URLClassLoader.fin dClass(未知源)
在java.lang.ClassLoader.loadClass(未知源)
at sun.misc.Launcher $ AppClassLoader.loadClass(未知源)
在java.lang.ClassLoader。 loadClass(未知源)
在org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:424)
在org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:377 )
在org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
在org.apache.logging.log4j.LogManager.getLogger(LogManager.java:474)
在com.global.service.FoundationStartup。< clinit>(FoundationStartup.java:19)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
在java.lang.reflect.Constructor.newInstance(未知来源)
在java .lang.Class.newInstance0(未知源)
在java.lang.Class.newInstance(未知源)
在org.eclipse.jetty.servlet.ServletContextHandler $ Context.createServlet(ServletContextHandler.java:1075 )
在org.eclipse.jetty.servlet.ServletHolder.newInstance(ServletHolder.java:957)
在org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:514)
在org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:344)
在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
在org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:791)
在org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265)
在org.eclipse。 jetty.webapp.WebAppContext.startContext(WebAppContext.java:1221)
在org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717)
在org.eclipse.jetty。 webapp.WebAppContext.doSta rt(WebAppContext.java:454)
在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
在org.eclipse.jetty.server.handler.HandlerCollection。 doStart(HandlerCollection.java:229)
在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
在org.eclipse.jetty.server.handler.HandlerWrapper。 doStart(HandlerWrapper.java:95)
在org.eclipse.jetty.server.Server.doStart(Server.java:282)
在org.eclipse.jetty.util.component.AbstractLifeCycle.start( AbstractLifeCycle.java:64)
在org.eclipse.wst.server.preview.internal.PreviewStarter.run(PreviewStarter.java:72)
在org.eclipse.wst.server.preview.internal。 PreviewStarter.main(PreviewStarter.java:29)`
我的配置有什么问题?我需要下载另一个.JAR或这是一个配置问题?
谢谢,
Stephen。
我将slf4j .jars复制到我的lib并重新安装服务器。出现以下错误。任何有关这些错误现在被抛出的想法?
.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41 )
在org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
在org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
在org。 apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
在org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
在org.slf4j.LoggerFactory。 getLogger(LoggerFactory.java:277)
在org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
在org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory。 java:51)
在org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
在org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
在org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4j LoggerFactory.java:51)
在org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
在org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
在org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
在org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
在org.apache.logging .slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
在org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
在org.slf4j.LoggerFactory.getLogger(LoggerFactory .java:277)
在org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
在org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51 )
在org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
在org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
在org。 apache.logging.slf4j.Lo g4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
在org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
在org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java: 41)
在org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
在org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
在org .apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
在org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
在org.slf4j.LoggerFactory .getLogger(LoggerFactory.java:277)
在org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
在org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory .java:51)
在org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
在org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
在org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51)
在org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
在org.apache.logging.slf4j .SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
答案隐藏在手册页面中:
将Log4j 2 SLF4J绑定(log4j-slf4j-impl-2.0.jar)与SLF4J适配器(log4j-to-slf4j)一起使用
-2.0.jar)不应该是
尝试,因为它会导致事件无休止地路由在
SLF4J和Log4j 2之间。
您希望保留 log4j-slf4j-impl-2.xx.jar和删除 log4j-to-slf4j-2.xx.jar 。
I added Log4J2 to my application. I copied all the Log4J2 .jar files to by LIB directory and created the Log4J2.xml file to support it. My code was updated to import the necessary Log Manager and Logger APIs. I then added the static final logger method and called the logger apis in my code. Everything compiled file in Eclipse. I proceed to start my server on my DEV machine to validate it. Upon starting my server I received the following error:`
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)`
What is wrong with my configuration? Do I need to download another .JAR or is this a configuration problem?
Thanks, Stephen.
I copied the slf4j .jars to my lib and reran the server. The following errors appeared. Any ideas why these errors are being thrown now?
.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)
The answer is hidden in the manual page:
Use of the Log4j 2 SLF4J Binding (log4j-slf4j-impl-2.0.jar) together with the SLF4J adapter (log4j-to-slf4j-2.0.jar) should never be attempted, as it will cause events to endlessly be routed between SLF4J and Log4j 2.
You want to keep the log4j-slf4j-impl-2.xx.jar and remove the log4j-to-slf4j-2.xx.jar.
这篇关于NoClassDefFoundError:org / slf4j / Logger的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!