错误-java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory

错误-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.

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.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
,而不是你问题中的大写字母。为了以防万一,你是怎么解决的?