Ich verwende Spring Boot v1.2.5 zum Erstellen einer REST-Anwendung. Beim Hochladen von Bildern habe ich eine Prüfung auf maximale Dateigröße, die die Eigenschaft zur Verfügung gestellt wird:Wie wird mit der maximalen Dateigröße verfahren? Ausnahme beim Spring Boot?
in application.properties. Diese Einrichtung wird von Spring Boot selbst bereitgestellt. Jetzt funktioniert der Check ordnungsgemäß. Die Frage ist, wie gehe ich mit der Ausnahme und eine Nachricht an den Benutzer zurück, die er verstehen kann?
Update 1 ----------
schrieb ich eine Methode in meinem Controller, wo ich beabsichtige, die MultipartException zu handhaben, @ExceptionHandler
verwenden. 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 ----------
Nach @luboskrnac darauf hingewiesen, ich habe mit einer Lösung kommen verwaltet. Wir können hier ResponseEntityExceptionHandler
verwenden, um diesen speziellen Fall zu behandeln. Ich glaube, wir hätten auch DefaultHandlerExceptionResolver
verwenden können, aber ResponseEntityExceptionHandler
wird uns erlauben, eine ResponseEntity
, im Gegensatz zu den ehemaligen, die Methoden, die ModelAndView
zurückgeben werden. Ich habe nicht versucht es aber.
Dies ist der letzte Code, den ich die MultipartException
behandeln bin mit:
@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 REST Apis. Dies ist die Antwort beim Hochladen einer Datei, die die Größe überschreitet. Danke.
Ich habe versucht, das zu tun. Ich habe versucht, die Exception lokal in meinem Controller mit ExceptionHandler zu behandeln, anstelle eines globalen Wrappers mit ControllerAdvice, wie in den von Ihnen freigegebenen Dokumenten angegeben. Ich versuche MultipartException in der Methode zu behandeln. Es scheint nicht zu funktionieren. @luboskrnac Bitte überprüfen Sie das Update 1. –
Ich lag falsch, vorher und korrigiert meine Antwort. Sie möchten ErrorController verwenden. – luboskrnac
Danke, dass Sie darauf hingewiesen haben. Ich habe meinen Beitrag mit der endgültigen Lösung aktualisiert, die ich verwende. –