我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception报错解决经过

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception报错解决经过

1.报错

过程:在项目测试时删除了某个图片资源后报错:

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
[Request processing failed; nested exception is java.lang.NullPointerException] with root cause.

2.分析

常见是属性注入的问题,如

1)Controller类的 @ResponseBody没有加;

2)使用mapper接口或service接口的地方没有加 @Autowired或是没有通过@Bean提交管理对象

3)有的成员变量是主动new出来的,有的则是通过注解提交给SpringBoot管理,当一个new出来的对象类中包含其他注解出来的对象时,也会出错,如:

Service:

public class DemoService {    @Autowired    private DemoMapper demoMapper;    public List findAll(){        List list=DemoMapper.findAll();        System.out.println("demo");        return list;    }}

Controller

@RestControllerpublic class HelloController {    DemoService demoService=new DemoService();    @RequestMapping("findAll")    public List findAll(){        return DemoService.findAll();    }}

new 出来的类是一个使用了注解提交对象的类时会报错;

这些常见的原因,容易解决,只要该加注解的加上注解就可以了

4)错误经过

但我在项目中出现注解问题之外的报错,查看Lombok日志输出和报错:

 输出一直正常,指导最后查询的是结果数为0,即Total:0,后面开始报错,嵌套的异常是空指针异常,肯定是哪边的值为NULL,根据报错找到了对应的类和方法:

 逻辑上iExhibitImgMapper.getExhibitImg会返回一个ExhibitImgVO实体类对象,但日志显示返回的ExhibitImgVO数为0,即NULL,会发现一个NULL值去调用实体类的方法getImgurl()就肯定会报错,意思是,exhibitImgVO.getImgurl()时,SpringBoot找不到exhibitImgVO对象,因为它是个Null值,提示是不是没通过注解提交对象。的确问题确实出在这个上面,接着改错。

3.解决

ExhibitImgVO exhibitImgVO =iExhibitImgMapper.getExhibitImg(tableName,id);BeanUtils.copyProperties(exhibitPrefVOList.get(i),exhibitPrefTotalVO);if (exhibitImgVO==null){      exhibitPrefTotalVO.setFirstImgUrl(null);}else {      exhibitPrefTotalVO.setFirstImgUrl(exhibitImgVO.getImgurl());}exhibitPrefTotalVOList.add(i,exhibitPrefTotalVO);

我进行了条件判断,如果exhibitImgVO不为NULL时才执行exhibitImgVO.getImgurl(),避免因为对象为Null却调用实体类方法而报错。

每个人遇到的情况都不一定相同,但希望我的改错经历可以对你有所借鉴。

来源地址:https://blog.csdn.net/qq_43780761/article/details/126634925

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception报错解决经过

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

目录