zoukankan      html  css  js  c++  java
  • java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext

    一、NoClassDefFoundError与ClassNotFoundException
      NoClassDefFoundError错误的发生,是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误。例如在运行时我们想调用某个类的方法或者访问这个类的静态成员的时候,发现这个类不可用,此时Java虚拟机就会抛出NoClassDefFoundError错误。

      ClassNotFoundException这个错误发生只在运行时需要加载对应的类不成功,而不是编译时发生。

      NoClassDefFoundError发生在JVM在动态运行时,根据你提供的类名,在classpath中找到对应的类进行加载,但当它找不到这个类时,就发生了java.lang.NoClassDefFoundError的错误,而ClassNotFoundException是在编译的时候在classpath中找不到对应的类而发生的错误。

      简单总结就是,NoClassDefFoundError发生在编译时对应的类可用,而运行时在Java的classpath路径中,对应的类不可用导致的错误

    二、NoClassDefFoundError出现的原因  

       对应的Class在java的classpath中不存在

     我遇到的情况是这样的:

     同一个项目中有多个模块,每个模块对应自己的pom,其中base模块导入了 spring-web的坐标,另一个spin没有导入

    但是在编译的时候,spin可以找到WebApplicationContext,但是运行时就报错。

    三、NoClassDefFoundError解决方法

      导入相应类(WebApplicationContext)的jar或maven坐标

     

  • 相关阅读:
    虚函数
    class与struct的区别
    HTTP是什么连接
    长连接与短连接
    多线程的主要优点
    overload、override、overwrite的介绍
    常用的Linux命令
    IO模型——IO多路复用机制
    栈区与堆区的区别
    软链接和硬链接到底有啥区别
  • 原文地址:https://www.cnblogs.com/756623607-zhang/p/9296575.html
Copyright © 2011-2022 走看看