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