Сериализация исключений в JSON с помощью Spring-MVC - PullRequest
6 голосов
/ 16 мая 2011
@RequestMapping(..)
@ResponseBody
public SearchResponse search(SearchRequest request) throws SearchException { .. }

Я хочу вернуться к заказчику:

  • JSON-сериализованный ответ на запрос, если все в порядке
  • JSON-сериализованные подробности исключения, если выброшено SearchException.

Первая часть работает нормально (с Джексоном на пути к классам и <mvc:annotation-driven />), но я не вижу простого способа сериализации исключения как json.

Я могу зарегистрировать пользовательский обработчик и написать оттуда строку JSON, но мне также может понадобиться сериализация XML, что будет означать, что мне понадобятся условные выражения в обработчике. Разве что-то не готово для этого?

1 Ответ

4 голосов
/ 16 мая 2011

Вот что сработало: я взял предложение axtavt (пометив его @Component) и добавил этот метод в контроллер:

@ExceptionHandler(CustomException.class)
public @ResponseBody CustomException handleException(CustomException ex) {
    return ex;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...