2011-05-16 21 views
5
@RequestMapping(..) 
@ResponseBody 
public SearchResponse search(SearchRequest request) throws SearchException { .. } 

我想返回給請求者:如果一切序列化的例外JSON與彈簧MVC

  • JSON序列化的搜索響應是罰款
  • JSON序列化異常的詳細信息,如果SearchException拋出。

第一部分工作正常(在classpath上有傑克遜和<mvc:annotation-driven />)但我沒有看到一個簡單的方法來將異常序列化爲json。

我可以註冊自定義處理程序,並從那裏寫入JSON字符串,但是我可能還需要XML序列化,這意味着我需要處理程序中的條件。沒有準備好嗎?

+1

見http://stackoverflow.com/questions/4948627/exceptionhandler-returning-json -or-xml-not-working-in-spring-mvc-3 – axtavt 2011-05-16 08:58:20

回答

4

這裏是什麼工作,我拿了axtavt's suggestion(註釋它@Component),並添加這個方法來控制:

@ExceptionHandler(CustomException.class) 
public @ResponseBody CustomException handleException(CustomException ex) { 
    return ex; 
} 
+0

它從Spring 3.1開始工作,在Spring 3.0下不起作用:https://jira.spring.io/browse/SPR-6902 – 2016-02-12 14:35:58