HandlerExceptionResolver, MaxUploadSizeExceededException — загрузка продолжается, и ошибка не возвращается немедленно

Я использую Spring 3.1.1. У меня есть функция загрузки файлов, и я реализовал HandlerExceptionResolver для ограничения размера файла. Я настроил размер в spring mvc xml с атрибутом «maxUploadSize». В моем приложении используется пружинная безопасность с открытым идентификатором.

Я использую приведенный ниже код в resolveException() этого контроллера загрузки. RestResponse — это pojo с сообщением об ошибке и статусом.

ModelAndView mav = new ModelAndView();
mav.setView(new MappingJacksonJsonView());
RestResponse fail_response = new RestResponse();
fail_response.setMessage("Max upload limit failure.");
fail_response.setStatus("FAIL");
mav.addObject("restResponse", fail_response);
return mav;

Из журналов я вижу, что вызывается resolveException(), однако ответ json не отображается в остальном клиенте/браузере API. Я вижу исключение в журнале (превышен максимальный размер загрузки 10485760 байт; вложенным исключением является org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: запрос был отклонен, поскольку его размер (30611515) превышает настроенный максимум (10485760)) сразу после загрузки, но загрузка все еще продолжается, и через некоторое время в браузере отображается сообщение об ошибке json (доступно выше).

Я проверил эту проблему в stackoverflow и других порталах и не смог найти, почему она не отображается или ответ возвращается в пользовательский интерфейс.


person PlanetSaro    schedule 04.04.2016    source источник


Ответы (1)


См. эту проблему и это SO. Если все еще не ясно, см. эту ссылка

и найдите maxFileSize и maxRequestSize. Добавьте те же настройки в свой application.yml

person Ejaz Ahmed    schedule 04.04.2016