【发布时间】:2017-03-29 20:08:25
【问题描述】:
在阅读了一些关于为 Spring 制作自定义异常处理程序的博客文章后,我编写了以下类:
@ControllerAdvice
public class RestExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(value = Exception.class)
@ResponseBody
public ResponseEntity<Object> exceptionHandler(Exception e) {
HashMap<String, Object> msg = new HashMap<>(2);
msg.put("error", HttpStatus.PRECONDITION_FAILED.value());
msg.put("message", "Something went wrong");
return new ResponseEntity<>(msg, HttpStatus.BAD_REQUEST);
}
}
目的是在 JSON 响应中发送 msg,而不是放弃 Spring 异常,无论出于何种原因引发的异常。
但是,这个类不起作用。
当我点击我的服务器 API 的无效端点时,我得到默认响应负载:
{
"timestamp": 1449238700342,
"status": 405,
"error": "Method Not Allowed",
"exception": "org.springframework.web.HttpRequestMethodNotSupportedException",
"message": "Request method 'POST' not supported",
"path": "/bad_enpoint"
}
我错过了什么?
谢谢。
【问题讨论】:
-
你能详细说明“不工作”吗?它不会被调用?可以,但失败了?
-
我用更多信息更新了这个问题。它没有被调用,我仍然返回 Spring 默认 JSON,Spring 期望被“暴露”
标签: java spring spring-boot spring-mvc