【问题标题】:Spring 3.0 webapp NoClassDefFoundError - classpath issueSpring 3.0 webapp NoClassDefFoundError - 类路径问题
【发布时间】:2011-06-28 00:40:20
【问题描述】:

我的 web 应用程序无法找到 org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean 类,尽管在 WEB 中有 org.springframework.web-3.0.2.RELEASE.jar -INF/lib 目录。如果我将旧版本的 spring.jar(2.5.6) 添加到 webapp,则可以找到该类。任何想法为什么会发生这种情况以及如何在不恢复到 spring-2.5.6 或将两个版本的 spring 保留在同一个 webapp 中的情况下修复它?

我在 Tomcat 6.0.28 上进行部署。

这是错误:

  • 原因:java.lang.NoClassDefFoundError: org/springframework/remoting/httpinvoker/HttpInvokerProxyFactoryBean

这是类路径(WEB-INF/lib)中的spring jars:

  • org.springframework.aop-3.0.2.RELEASE.jar
  • org.springframework.asm-3.0.2.RELEASE.jar
  • org.springframework.beans-3.0.2.RELEASE.jar
  • org.springframework.context-3.0.2.RELEASE.jar
  • org.springframework.core-3.0.2.RELEASE.jar
  • org.springframework.expression-3.0.2.RELEASE.jar
  • org.springframework.web-3.0.2.RELEASE.jar
  • org.springframework.web.servlet-3.0.2.RELEASE.jar

可能相关的问题:

【问题讨论】:

  • 这些 jar 中是否存在该类?
  • 它存在于 org.springframework.web-3.0.2.RELEASE.jar
  • 你能发布堆栈跟踪吗? NoClassDefFoundErrorClassNotFoundException 不同。这意味着找不到 HttpInvokerProxyFactoryBean 内部使用的类定义,而不是类本身。
  • 你可能需要aopalliance-1.0.jar
  • 也请尝试添加commons-httpclient.jar

标签: java spring tomcat classpath noclassdeffounderror


【解决方案1】:

NoClassDefFoundErrorClassNotFoundException 不同。这意味着找不到 HttpInvokerProxyFactoryBean 内部使用的类定义,而不是类本身。

换句话说,HttpInvokerProxyFactoryBean 及其超类的所有导入类都必须在您的类路径中找到。

由于HttpInvokerProxyFactoryBeanorg.springframework.aop.framework.ProxyFactory 的子类并且ProxyFactory 依赖于aopalliance-1.0.jar,因此您需要将其包含在您的类路径中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2013-05-25
    相关资源
    最近更新 更多