使用spring-mvc将异常序列化为JSON
问题内容:
@RequestMapping(..)
@ResponseBody
public SearchResponse search(SearchRequest request) throws SearchException { .. }
我想返回给请求者:
- 如果一切正常,JSON序列化的搜索响应
SearchException
抛出JSON序列化的异常详细信息。
第一部分工作正常(在类路径上有Jackson <mvc:annotation-driven />
),但是我看不到将异常序列化为json的简单方法。
我可以注册一个自定义处理程序,然后从那里编写一个JSON字符串,但是我可能还需要XML序列化,这意味着我将需要在处理程序中使用条件。还没有准备好吗?
问题答案:
这是起作用的方法:我接受了axtavt的建议(用注释@Component
),并将此方法添加到控制器中:
@ExceptionHandler(CustomException.class)
public @ResponseBody CustomException handleException(CustomException ex) {
return ex;
}