Обработка составных и не составных HTTP POST в Spring MVC

У меня есть веб-сервис SpringMVC для загрузки файлов, который выглядит следующим образом:

@RequestMapping(value="/upload.json", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> upload(MultipartHttpServletRequest request) {
    // upload the file
}

, и все в порядке. Но если один из потребителей публикует не составной форма, то я получаю это исключение

java.lang.IllegalStateException: Current request is not of type [org.springframework.web.multipart.MultipartHttpServletRequest]

Что имеет смысл ... однако я не хочу, чтобы мои конечные пользователи видели 500 исключений сервлетов. Мне нужно дружественное сообщение об ошибке.

Я просто попробовал это (чтобы быть похожим на сборник для других POST):

@RequestMapping(value="/upload.json", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> upload2(){ 
// return friendly msg 
}

, но я получаю эту ошибку:

java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path '/upload.json'

Есть ли способ безопасно обрабатывать как составные, так и не составные POST-запросы? Одним методом или двумя разными способами, мне все равно.

5
задан icchanobot 15 June 2011 в 02:16
поделиться