我收到java.lang.NoClassDefFoundError:org / springframework / web / context / WebApplicationContext

时间:2014-07-30 08:42:50

标签: spring spring-mvc

我在classpath中添加了spring-web.4.0.jar。它包含类 - org.springframework.web.context.WebApplicationContext。但是当我尝试在eclipse中运行它时,它显示了一个错误:org/springframework/web/context/WebApplicationContext。 如何解决此错误?

3 个答案:

答案 0 :(得分:14)

选择"清洁......"从服务器上下文菜单帮我摆脱了这个问题。

答案 1 :(得分:1)

尝试清理并重建你的eclipse项目,因为有时eclipse会过时。

或者,如果这没有帮助,您需要验证运行时路径确实指向正确的jar,并且jar确实包含WebApplicationContext.class且可读。

要查看运行时路径,请使用调试视图(Window - Views- Debug),右键单击以查看属性。

找到jar并使用普通的zip查看器打开它,看看文件是否正确读取。

答案 2 :(得分:0)

这个问题的根本原因几乎可以是任何事情,但这里有一些奇怪的事情需要检查:

  • 具有 testprovided 范围的 Maven 依赖项,应该是正常范围
  • Spring XML 文件的架构版本与框架版本(3.0 或 4.0)不匹配
  • Spring XML 引用“https://”而不是“http://”,反之亦然(取决于版本)
  • web.xml 包含与所选网络服务器不兼容的 ${} 引用的文件
  • 非常核心的库版本冲突,例如 Jackson、Servlet API、spring-*
  • 错误配置、丢失或不兼容的记录器:slf4j、log4j、jcl
  • 新旧混合:jdk 版本、spring 版本、依赖版本、IDE、服务器
  • Maven 依赖项未显示在部署程序集中(此依赖项随着升级而消失)
  • 陈旧或锁定的 jarfile... 可能需要重新启动,tomcat“清理...”还不够
  • 缺少必需的 -D 或环境变量

我的申请结果有几个都是错误的。

该例外具有误导性。在异常上设置调试器断点有时会有所帮助。