【问题标题】:Error -java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory错误 -java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
【发布时间】:2012-01-04 07:43:10
【问题描述】:

Web 应用程序已部署,但出现以下错误消息。我正在使用 cxf RESTFUL webservice 并尝试使用 JSON 进行编码/解码。我已经将日志库添加到我的 WEB-INF 中,但它仍然显示以下错误。我在 WEB-INF/Lib 文件夹中添加了 Commons Logging 1.1.1 库。

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)

【问题讨论】:

  • 你添加了什么库,你把它放在WEB-INF的什么地方? Spring 不依赖公共日志记录(它使用 log4j),因此正在寻找其他东西。
  • 你放到WEB-INF/lib文件夹了吗?
  • 我在 WEBINF/Lib 文件夹中添加了 Commons Logging 1.1.1 lib
  • 如果您的文件夹真正命名为WEBINF,那么我想我看到了您的问题...
  • 此外,该文件夹应命名为WEB-INF/lib,并使用小写l,而不是像您的问题中那样大写。以防万一。

标签: java exception jakarta-ee spring-mvc


【解决方案1】:

我最终将 CXF jar 更新到了最新版本

【讨论】:

    【解决方案2】:

    问题不在于 LogFactory 本身的类,而是它所依赖的东西。

    如果您有ClassNotFoundExceptions,则表示类加载器未找到该类,通常意味着缺少包含该类的jar。

    但在您的情况下,您有一个NoClassDefFoundError,这意味着在加载上面的类时找不到所需的定义。

    【讨论】:

    • 那么你是怎么解决这个问题的?
    【解决方案3】:

    在项目的类路径中执行测试时缺少这些类 s 解决方案:添加你的pom 公地发现 公地发现 0.5 测试

    【讨论】:

      猜你喜欢
      • 2016-01-25
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 2019-01-23
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多