Springmvc使用@Validate遇到的问题Servlet[dispatcher]的Servlet.service ()引发了具有根本原因的异常.....

你们好,我是金金金。

image.png

场景

  • 我正在学习参数校验,启动项目时报错如下,我把代码都贴出来

maven依赖

9cdb2135338b6444c0745d2377e20b76_.png

配置类

9c8eef29bf099ad8c5c84279d353d566_.png

依赖版本

image.png

控制器代码

2a666e2fbfa7677d71d2e78b5e374444_.png

postman测试

5469c0cba84f58fd43ea9b2f9771f3aa_.png

报错信息

594b2543116216c02ef85afd1d0cb28d_.png

排查

  • 看报错信息提示空指针,好像还是提示的源码里面的代码,一时不知咋搞了
  1. 版本我也试了
  2. 然后我也打了断点,压根没进入到方法里面就报错了
  3. 配置 @EnableWebMvc后,SpringMVC 会默认装配好一个 LocalValidatorFactoryBean,通过在处理方法的入参上标注 @Validated 注解即可让 SpringMVC 在完成数据绑定后执行数据校验的工作
  • 尝试了非常多的方法都还是不行,也百度了很久,搞了我一天的时间。

34271b58c01e810b9c9514b9ad7e197e_.png

  • 我把这个校验注解去了就没问题,但是没校验啊,,,就是这个注解的问题导致,不知道是不是啥没配置啊,我看教程也是这样啊,后面我又新开了一个小模块测试,发现,,竟然是引错包的问题所导致

a6c1974a679b42409787759b077312d.png

造成error的原因

  • NotNull注解引入错了包所导致。

解决

NotNull正确的包是:import javax.validation.constraints.NotNull; 下的
我这Tomcat9.x版本的所以导入的是 javax包下@NotNull的,如果是Tomcat 10.x版本则需要导入的是jakarta包下的!

  • 实体类

image.png

  • 控制层代码

image.png

我们来测试一下

image.png

image.png

总结

主要是因为导入错包所引发的问题,排查起来相当困难,这也是一个深刻的教训!

  • 编写有误还请大佬指正,万分感谢。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值