【发布时间】:2014-07-01 15:23:49
【问题描述】:
我正在运行一个简单的 spring-boot web 应用程序 api。问题是当我抛出异常,或者spring抛出异常时,异常总是在Http中抛出,springs默认错误页面。 有没有办法让错误默认为另一种媒体类型,比如 JSON? 基本上我总是想要 json,即使有错误。 我不想为每个异常类型编写一个自定义的@ExceptionHandler,因为那太糟糕了..
更新:这是我目前正在尝试的:
@ControllerAdvice
@EnableAutoConfiguration
public class ErrorWritter extends ResponseEntityExceptionHandler {
@Override
public ResponseEntity<Object> handleExceptionInternal(Exception ex, Object body, HttpHeaders headers, HttpStatus status, WebRequest request) {
String response = "{\"status\":\""
+ status.toString()
+ "\",\"generic message\":\""
+ status.getReasonPhrase()
+ "\",\"specific message\":\""
+ ex.getMessage()
+ "\" }";
return new ResponseEntity<Object>(response, headers, status);
}
}
但这似乎并没有做任何事情。为了让spring认识到我希望它使用它,我需要做些什么吗?
请注意:我使用的是 Java 配置而不是 xml 配置。
【问题讨论】:
标签: java spring spring-mvc spring-boot