错误-java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory
Web应用程序已部署,但出现以下错误消息。我正在使用cxf RESTFUL Web服务,并尝试使用JSON进行编码/解码。我已经在WEB-INF中添加了日志库,但它仍然显示以下错误。我在WEB-INF/lib文件夹中添加了Commons Logging 1.1.1 lib错误-java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory,java,exception,jakarta-ee,spring-mvc,Java,Exception,Jakarta Ee,Spring Mvc,Web应用程序已部署,但出现以下错误消息。我正在使用cxf RESTFUL Web服务,并尝试使用JSON进行编码/解码。我已经在WEB-INF中添加了日志库,但它仍然显示以下错误。我在WEB-INF/lib文件夹中添加了Commons Logging 1.1.1 lib java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.springframework.web.context.
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.springframework.web.context.ContextLoader.<init>(ContextLoader.java:143)
at org.springframework.web.context.ContextLoaderListener.createContextLoader(ContextLoaderListener.java:57)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:48)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4765)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5260)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1525)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1515)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory
位于org.springframework.web.context.ContextLoader.(ContextLoader.java:143)
位于org.springframework.web.context.ContextLoaderListener.createContextLoader(ContextLoaderListener.java:57)
位于org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:48)
位于org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4765)
位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5260)
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1525)
位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1515)
位于java.util.concurrent.FutureTask$Sync.innerRun(未知源)
位于java.util.concurrent.FutureTask.run(未知源)
位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(未知源)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源)
位于java.lang.Thread.run(未知源)
问题不在于类日志工厂本身,而在于它所依赖的东西
如果您有一个ClassNotFoundExceptions
,这意味着类加载器找不到该类,通常意味着包含该类的jar丢失
但是在您的例子中,您有一个NoClassDefFoundError
,这意味着在加载上面的类时,它找不到所需的定义。我最终将CXF jar更新为最新版本在项目的类路径中执行测试时,这些类丢失了
s
解决方案:加入你的pom
公地发现
公地发现
0.5
试验
您添加了什么库以及在WEB-INF中放在哪里?Spring不依赖于commons日志(它使用log4j)所以有别的东西在找它。你把它放在WEB-INF/lib文件夹里了吗?我在WEB-INF/lib文件夹里添加了Commons Logging 1.1.1lib。如果你的文件夹真的命名为WEB-INF
,那么我想我看到了你的问题了……文件夹也应该命名为WEB-INF/lib
,并带有小写字母l
,而不是你问题中的大写字母。为了以防万一,你是怎么解决的?