【发布时间】:2015-01-07 15:52:00
【问题描述】:
在 Spring 中实现全局异常处理程序时,我注意到在无法识别 Accept 标头的情况下,Spring 会抛出它自己的内部错误。我需要的是返回一个自定义的 JSON 错误结构。适用于特定于应用程序的异常,但对于 Spring HttpMediaTypeNotAcceptableException 完全失败。
当我尝试请求带有不正确 Accept 标头的页面时,此代码告诉我“无法调用 @ExceptionHandler 方法:public java.util.Map RestExceptionHandler.springMalformedAcceptHeaderException()”。还有其他方法可以为 Spring 内部异常返回自定义 JSON 吗?
@ControllerAdvice
public class RestExceptionHandler {
@ExceptionHandler(value = HttpMediaTypeNotAcceptableException.class)
@ResponseBody
public Map<String, String> springMalformedAcceptHeaderException() {
Map<String, String> test = new HashMap<String, String>();
test.put("test", "test");
return test;
}
}
【问题讨论】:
标签: spring spring-4 exceptionhandler