尽管 WEB 中有 org.springframework.web-3.0.2.RELEASE.jar,但我的 Web 应用程序无法找到 org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean 类-INF/lib 目录。如果我将旧版本的 spring.jar(2.5.6) 添加到 web 应用程序,则会找到该类。任何想法为什么会发生这种情况以及如何修复它而不恢复到 spring-2.5.6 或将两个版本的 spring 保留在同一个 web 应用程序中?
我正在 Tomcat 6.0.28 上部署。
错误如下:
- 由以下原因引起:java.lang.NoClassDefFoundError:org/springframework/remoting/httpinvoker/HttpInvokerProxyFactoryBean
以下是类路径 (WEB-INF/lib) 中的 spring jar:
- 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
可能相关的问题:
最佳答案
NoClassDefFoundError
与 ClassNotFoundException
不同。这意味着找不到 HttpInvokerProxyFactoryBean 内部使用的类定义,而不是类本身。
换句话说,HttpInvokerProxyFactoryBean
及其父类(super class)的所有导入类都必须在您的类路径中找到。
由于 HttpInvokerProxyFactoryBean
是 org.springframework.aop.framework.ProxyFactory
的子类,并且 ProxyFactory
依赖于 aopalliance-1.0 .jar
,您需要将其包含在您的类路径中。
关于java - Spring 3.0 webapp NoClassDefFoundError - 类路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5011218/