1.使用各工具的版本
- Java 8
- Maven 3.3
- idea 2020.1.4
- 创建springboot用的是spring Initalizr
2.出现的错误
准备测试springboot数据访问,导入了JDBC场景和数据库的驱动,然后在测试类中测试数据库的时候出现如下的错误:(粘贴的是部分主要错误)
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerAdapter' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]:
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter]: Factory method 'requestMappingHandlerAdapter' threw exception; nested exception is java.lang.NoClassDefFoundError: net/minidev/asm/FieldFilter
Caused by: java.lang.NoClassDefFoundError: net/minidev/asm/FieldFilter
Caused by: java.lang.ClassNotFoundException: net.minidev.asm.FieldFilter
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 102 more
3.解决方法
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
把这个依赖移除掉,然后测试类就可以跑起来了。我只是跑测试类,不要给我抬杠把这个包移出了怎么跑web项目,哈哈哈哈哈。
4.我的理解
应该是jar包冲突了,但是又感觉不是。在网上百度了很久都没找到这个错误的具体解决方法。看到一个文章说是移出一个启动类就行了,但是我觉得我这就一个web的启动类,抱着试一试的态度把个web场景移除了,然后测试类就可以跑起来了。
虽然很开心测试类能跑起来,但是我知道我这只是瞎猫碰到了死耗子。如果有大牛知道具体的原因,**希望在评论区告知!**thinks