Spring 3.0 webapp NoClassDefFoundError - 类路径问题

时间:2011-02-16 00:35:58

标签: java spring tomcat classpath noclassdeffounderror

我的webapp无法找到 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

以下是类路径中的spring jar(WEB-INF / lib):

  • 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

可能相关的问题:

1 个答案:

答案 0 :(得分:3)

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

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

由于HttpInvokerProxyFactoryBeanorg.springframework.aop.framework.ProxyFactory的子类,而ProxyFactory取决于aopalliance-1.0.jar,因此您需要在类路径中包含此内容。