Ich habe maximale Dateigröße zuMehrteiliger Datei Ausnahme maximale Größe - Federverschluß embbeded tomcat
gesetztmultipart.maxFileSize: 1mb
multipart.maxRequestSize: 1mb
Dies ist mein Controller:
@RequestMapping(method=RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseStatus(HttpStatus.CREATED)
@Secured(Privileges.CAN_USER_READ)
public void create(@RequestParam("file")final MultipartFile file,Principal principal) throws IllegalStateException, IOException,MultipartException{
medicalHistoryService.create(new MedicalHistory(file));
}
diese Fehlermeldung
2016-03-03 13:48:24.560 WARN 4992 --- [nio-8080-exec-1] h.c.w.RestResponseEntityExceptionHandler : Could not parse multipart servlet request; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (9288401) exceeds the configured maximum (1048576)
2016-03-03 13:48:25.545 WARN 4992 --- [nio-8080-exec-2] h.c.w.RestResponseEntityExceptionHandler : Could not parse multipart servlet request; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (9288401) exceeds the configured maximum (1048576)
Und das Endergebnis nach der Anfrage mit der übergroßen Datei ist die Seite zum Laden des Problems. Ich bekomme keinen anderen Fehler in der Stack-Trace, also bin ich irgendwie mit dem fest, was eigentlich vor sich geht. Oh ja, ich habe viele andere Lösungen ausprobiert, wie zum Beispiel das Registrieren von Filtern und das Behandeln von Ausnahmen in ErrorController. Jedes Mal, wenn ich mit dem gleichen Ergebnis enden würde - Server-Crash.
EDIT 2
Meine Ausnahmebehandlung Klasse:
@ControllerAdvice
public class RestResponseEntityExceptionHandler extends
ResponseEntityExceptionHandler{
// 413 MultipartException - file size too big
@ExceptionHandler({MultipartException.class,FileSizeLimitExceededException.class,java.lang.IllegalStateException.class})
public ResponseEntity<Object> handleSizeExceededException(final WebRequest request, final MultipartException ex) {
//log.warn("413 Status Code. File size too large {}", ex.getMessage());
log.warn(ex.getMessage());
final ApiError apiError = message(HttpStatus.PAYLOAD_TOO_LARGE, ex);
return handleExceptionInternal(ex, apiError, new HttpHeaders(), HttpStatus.PAYLOAD_TOO_LARGE, request);
}
}
Sie haben nicht genug von Ihrem Code gezeigt. Was macht 'handleExceptionInternal' zum Beispiel. Ein [minimales, vollständiges, überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) wird es den Menschen erleichtern, Ihnen zu helfen. –
'handleExceptionInternal' ist eine interne Methode von 'ResponseEntityExceptionHandler', die in der Dokumentation" Eine praktische Basisklasse für {@link ControllerAdvice @ControllerAdvice} Klassen * ist, die eine zentrale Ausnahmebehandlung bereitstellen möchten ". –