Я разрабатываю API-интерфейс RESTful с использованием весенней загрузки 2 и пытаюсь загрузить файл с лимитом, установленным в файле yml как servlet.multipart.max-file-size=2MB
.
В соответствии с моим требованием любой размер файла, загруженный выше 2 МБ, необходимо вставить в базу данных с информацией запроса (getUser()
) и исключением. Я могу создать сообщение об исключении, используя @ExceptionHandler
, но не получаю информацию о запросе (getUser()
). пожалуйста, сообщите.
Я пытался с WebRequest webRequest на контроллере остатка с webRequest.setAttribute, но я получаю Null в @ExceptionHandler
.
Мой контроллер и совет контроллера:
@PostMapping(path = "/sendEmail")
public ResponseEntity<EmailVO> sendEmail(@RequestPart(value = "file", required = false) MultipartFile[] uploadfile,
@RequestPart EmailVO emailVO,WebRequest webRequest, HttpServletRequest httprequest) {
webRequest.setAttribute("emailVO", emailVO, RequestAttributes.SCOPE_REQUEST);
EmailVO emailVO = myService.sendEmail(emailVO, uploadfile);
return new ResponseEntity<>(emailVO, HttpStatus.OK);
}
@ExceptionHandler(Exception.class)
public ExceptionResponse handleException(final Exception ex, final HttpServletRequest httprequest,WebRequest webrequest) {
if (ex instanceof MaxUploadSizeExceededException) {
EmailVO emailVO = (EmailVO) webrequest.getAttribute(EmailVO, RequestAttributes.SCOPE_REQUEST);
return new ExceptionResponse("Exceeds the limit for user "+emailVO.getUser,ex.getClass().getSimpleName(), httprequest.getRequestURI(),"Failure");
}
}
Я не могу получить emailVO.getUser, исходящий от контроллера запросов