最近我在使用 spring boot 创建项目的时候,遇到了一个找不到 bean 的异常:java.lang.NoClassDefFoundError: org/springframework/beans/factory/ListableBeanFactory 。通过我在网上的搜索发现该问题没有类似的答案,因此我整理了本文并分享给大家。
整个异常提示信息如下:
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/beans/factory/ListableBeanFactory
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.ListableBeanFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
… 12 more
根据上面的相关信息,基本上可以判断该问题是找不对相关类,即找不到 ListableBeanFactory 类。
ListableBeanFactory 类位于 spring-bean 中的jar包。在一些低版本的 spring 框架中,可能不存在该jar包,升级相关jar包即可。
另外我发现在 spring-boot 的1.5.9 版本中会报该错误。而使用 spring-boot-starter-parent1.5.8.RELEASE 启动则无任何问题。遇到该问题可以在相关jar包中查看是否有这个类,如果没有则升级 jar 包。或者降级相应的 jar 文件。
: » java.lang.NoClassDefFoundError: org/springframework/beans/factory/ListableBeanFactory 问题解决
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/java/251720.html