Wie handhaben die maximale Dateigröße Ausnahme in den Frühling Starten?
Bin ich mit Spring-Boot-v1.2.5 für die Erstellung einer REST-Anwendung. Beim hochladen von Bildern, ich habe einen Scheck für die maximale Dateigröße , die der Eigenschaft :
multipart.maxFileSize= 128KB
in der Anwendung.Eigenschaften. Diese Einrichtung ist von Spring Boot selbst. Jetzt den Scheck ordnungsgemäß funktioniert. Die Frage ist, wie kann ich die Ausnahme behandeln und wieder eine Nachricht an den Benutzer, dass er Sie verstehen kann ?
Update 1----------
Schrieb ich eine Methode in meinem Controller, wo ich beabsichtige, Griff die MultipartException, mit @ExceptionHandler
. Es scheint nicht zu funktionieren.
Dies ist mein code :
@ExceptionHandler(MultipartException.class)
@ResponseStatus(value = HttpStatus.PAYLOAD_TOO_LARGE)
public ApplicationErrorDto handleMultipartException(MultipartException exception){
ApplicationErrorDto applicationErrorDto = new ApplicationErrorDto();
applicationErrorDto.setMessage("File size exceeded");
LOGGER.error("File size exceeded",exception);
return applicationErrorDto;
}
Update 2----------
Nachdem @luboskrnac darauf hingewiesen, ich habe es geschafft, zu einer Lösung zu kommen. Wir können ResponseEntityExceptionHandler
mit diesem speziellen Fall. Ich glaube, wir könnten auch verwendet werden DefaultHandlerExceptionResolver
, aber ResponseEntityExceptionHandler
wird es uns ermöglichen, um wieder eine ResponseEntity
, im Gegensatz zu den ehemaligen, die Methoden, von denen zurück ModelAndView
. Ich nicht versuchte es trotzdem.
Dies ist der Letzte code, den ich verwende, um zu behandeln, die MultipartException
:
@ControllerAdvice
public class CustomResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
private static final Logger LOGGER = Logger.getLogger(CustomResponseEntityExceptionHandler.class);
@ExceptionHandler(MultipartException.class)
@ResponseStatus(value = HttpStatus.PAYLOAD_TOO_LARGE)
@ResponseBody
public ApplicationErrorDto handleMultipartException(MultipartException exception){
ApplicationErrorDto applicationErrorDto = new ApplicationErrorDto();
applicationErrorDto.setMessage("File size exceeded");
LOGGER.error("File size exceeded",exception);
return applicationErrorDto;
}
}
Ich bin mit Swagger für die Entwicklung/Dokumentation von REST-Apis. Dies ist die Antwort auf das hochladen einer Datei, die über die Größe.
Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Spring Boot-docs, sagt:
Als
MultipartException
scheinen hapen vor@Controller/@ExceptionHandler/@ControllerAdvice
features ins Spiel kommt, sollten SieErrorController
zu behandeln.BTW, ich fand diese thread in der Zwischenzeit. Sie können einen Blick darauf werfen wollen.