Mam ustawiony maksymalny rozmiar pliku doMultipart plik maksymalny rozmiar wyjątek - wiosna bagażnika embbeded kocur
multipart.maxFileSize: 1mb
multipart.maxRequestSize: 1mb
To jest mój kontroler:
@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));
}
jest komunikat o błędzie
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)
Ostatnim wynikiem po przesłaniu prośby o zbyt duży plik jest strona ładowania problemów. Nie dostaję żadnego innego błędu w śladzie stosu, więc trochę utknąłem z tym, co się dzieje. O tak, próbowałem wielu innych rozwiązań, takich jak rejestrowanie filtra, obsługa wyjątków w ErrorController. Za każdym razem kończy się to samym wynikiem - awaria serwera.
EDIT 2
My wyjątkiem klasy Postępowanie:
@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);
}
}
Nie pokazałeś wystarczającej ilości kodu. Na przykład czym jest 'handleExceptionInternal'. [Minimalny, kompletny, weryfikowalny przykład] (http://stackoverflow.com/help/mcve) ułatwi ci pomoc. –
'handleExceptionInternal' jest wewnętrzną metodą 'ResponseEntityExceptionHandler', która jest, według dokumentacji" Wygodna klasa bazowa dla {@link ControllerAdvice @ControllerAdvice} klas *, które chcą zapewnić scentralizowaną obsługę wyjątków ". –