采菇凉的小蘑菇丶
2017-03-12 12:26
采纳率: 100%
浏览 5.7k
已采纳

Spring MVC中ResponseBody, ResponseEntity和异常返回的问题

先看代码:

 @RestController
public class SampleController {

    @RequestMapping("/resp")
    public String sampleResp(){
         System.out.println(1/0);
         return "Hello";
    }
}

此时使用postman或者httprequester请求,响应状态码500,但是response中如下:

 {
  "timestamp": 1489320286710,
  "status": 500,
  "error": "Internal Server Error",
  "exception": "java.lang.ArithmeticException",
  "message": "/ by zero",
  "path": "/resp"
}

第一个问题:
目前项目中没有做统一异常处理和添加ExceptionnReslovers, 有没有能帮忙找出具体源码,就是这些信息从哪里取出来的。

第二个问题:
ResponseEntity中存在于HttpStatus和HttpHeader,可以通过ResponseEntity来返回Http的头和状态, 我想知道源码中具体的response.setStatus和addHeader在哪里?

刚刚使用CSDN,没多少金币,求大神帮忙。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • devmiao 2017-03-12 15:54
    已采纳
    点赞 打赏 评论
  • 采菇凉的小蘑菇丶 2017-06-16 08:26

    由于当时比较忙,忽略了问题解决方法:
    实际上,请求错误之后会映射到BasicErrorController中,具体可以查看BasicErrorController源码, 里面会有两个异常处理方法,响应也是在这里面定义的。

    点赞 打赏 评论

相关推荐 更多相似问题