Как получить объект запроса для MaxUploadSizeExceededException - PullRequest
0 голосов
/ 17 мая 2019

Я разрабатываю 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, исходящий от контроллера запросов

...