Контроллер моего отдыха содержит следующее пост-отображение:
@PostMapping
public ResponseEntity<RespDTO> uploadDocument(@ModelAttribute @Valid RequestDTO requestDTO,@RequestParam(value = "fileContent") MultipartFile fileContent) throws ServiceException, URISyntaxException { }
ServiceExceptionn - это пользовательское исключение, определяющее c для моего приложения.
Совет контроллера выглядит следующим образом:
@ControllerAdvice
public class ExceptionTranslator implements ProblemHandling, SecurityAdviceTrait {
@Override
public ResponseEntity process(@Nullable ResponseEntity<Problem> entity, NativeWebRequest request) {
}
@ExceptionHandler(FileTooLargeException.class)
public ResponseEntity<ResponseDTO> handleFileTooLargeException(FileTooLargeException ex, @Nonnull NativeWebRequest request){
}
}
application.yml содержит свойство ниже:
spring:
servlet:
multipart:
max-file-size: 2MB
Если я вызову остальные API, используя файл размером более 2 МБ, я получаю исключение ниже:
io.undertow.server.handlers.form.MultiPartParserDefinition$FileTooLargeException: UT000054: The maximum size 5242880 for an individual file in a multipart request was exceeded
Проблема, с которой я сталкиваюсь здесь: совет контроллера не работает в соответствии с ожиданиями. handleFileTooLargeException - этот метод должен быть выполнен, потому что он аннотирован ExceptionHandler, упомянутым с указанным c типом исключения. Но вместо этого управление переходит к методу процесса совета контроллера.
Не в состоянии понять, чего мне здесь не хватает.