likes
comments
collection
share

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

作者站长头像
站长
· 阅读数 10

你们好,我是金金金。

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

场景

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

maven依赖

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

配置类

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

依赖版本

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

控制器代码

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

postman测试

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

报错信息

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

排查

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

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

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

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

造成error的原因

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

解决

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

  • 实体类

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

  • 控制层代码

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

我们来测试一下

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

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

总结

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

  • 编写有误还请大佬指正,万分感谢。