Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....
你们好,我是金金金。
![Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....](https://static.blogweb.cn/article/2c5ffa51d57d4166b9d6352659a8efec.webp)
场景
- 我正在学习参数校验,启动项目时报错如下,我把代码都贴出来
maven依赖
![Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....](https://static.blogweb.cn/article/af3920c51f70472a8aba233a7336a4c6.webp)
配置类
![Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....](https://static.blogweb.cn/article/4c7d2f6aba79436ca19d4b99d0e964c5.webp)
依赖版本
![Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....](https://static.blogweb.cn/article/1d27f60350cc445990777d823bdd8fb1.webp)
控制器代码
![Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....](https://static.blogweb.cn/article/4b70f2c7ce634fb485d641287da35adf.webp)
postman测试
![Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....](https://static.blogweb.cn/article/b0565bb84dac4ba0836a3c789cdd44db.webp)
报错信息
![Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....](https://static.blogweb.cn/article/9fd3fa779383469b8262622c44f492d0.webp)
排查
- 看报错信息提示空指针,好像还是提示的源码里面的代码,一时不知咋搞了
- 版本我也试了
- 然后我也打了断点,压根没进入到方法里面就报错了
- 配置
@EnableWebMvc后,SpringMVC会默认装配好一个LocalValidatorFactoryBean,通过在处理方法的入参上标注@Validated注解即可让SpringMVC在完成数据绑定后执行数据校验的工作
- 尝试了非常多的方法都还是不行,也百度了很久,搞了我一天的时间。
![Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....](https://static.blogweb.cn/article/7a8d590b99e3428eb6196bd279ea6dec.webp)
- 我把这个校验注解去了就没问题,但是没校验啊,,,就是这个注解的问题导致,不知道是不是啥没配置啊,我看教程也是这样啊,后面我又新开了一个小模块测试,发现,,竟然是引错包的问题所导致
![Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....](https://static.blogweb.cn/article/dd41c7119ea441cdbf211bf7b0ec3f47.webp)
造成error的原因
NotNull注解引入错了包所导致。
解决
NotNull正确的包是:import javax.validation.constraints.NotNull; 下的 我这
Tomcat9.x版本的所以导入的是javax包下@NotNull的,如果是Tomcat 10.x版本则需要导入的是jakarta包下的!
- 实体类
![Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....](https://static.blogweb.cn/article/d750fd7bdd35483c8538d20528eaa983.webp)
- 控制层代码
![Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....](https://static.blogweb.cn/article/54e5b3a91a0e4179a857e24271b70f18.webp)
我们来测试一下
![Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....](https://static.blogweb.cn/article/b2f9d1a3d2b84426bbce1375cd47ebc1.webp)
![Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....](https://static.blogweb.cn/article/bdc1c9a5eeea4460a80861202667ee0e.webp)
总结
主要是因为导入错包所引发的问题,排查起来相当困难,这也是一个深刻的教训!
- 编写有误还请大佬指正,万分感谢。
转载自:https://juejin.cn/post/7349189143799119899