500 при отправке FormData
Проблема заключается в том, что когда я запускаю Спринг приложение у себя на ноуте все отлично работает, а когда я переношу его на сервер в Tomcat начинается интересное. Первый запрос с FormData проходит и нормально обрабатывается, все заносится в базу, но последующие запросы падают с ошибкой 500 без сообщения.
Вот пример ответа с ошибкой:
{
"timestamp": "2021-12-02T22:53:08.872+00:00",
"status": 500,
"error": "Internal Server Error",
"message": "",
"path": "/hustle/api/catalog/add"
}
И вот метод контроллера который обрабатывает запрос:
@RequestMapping(
value = ["add"],
method = [RequestMethod.POST],
consumes= ["multipart/form-data"]
)
fun add(
@RequestParam("image") file: MultipartFile,
@RequestParam("name") name: String,
@RequestParam("longName") longName: String,
@RequestParam("description") description: String,
@RequestParam("price") price: Int
) : DataWrapper<Any> {
return try {
//запись в базу
} catch(ex: Exception) {
//вывод ошибки (не 500)
}
}
Что касается настроек проекта, они полностью дефолтные за исключением пары моментов:
Добавил в настройки 3 строки, чтоб файл можно было грузить
- spring.servlet.multipart.max-file-size=10MB
- spring.servlet.multipart.max-request-size10MB
- spring.servlet.multipart.enabled=tru*
Добавил в зависимости spring-boot-starter-web и убрал в настройках Tomcat ограничение на размер запроса.
Все было бы лучше, если бы оно вообще не работало, а то, что оно срабатывает первый раз, сбивает с толку.
Заранее спасибо за помощь.
UPD
Смог вытащить текст ошибки:
Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.impl.IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly
Ответы (1 шт):
Проблема заключается в ошибке Tomcat9, используйте Http11Nio2Protocol в , тогда не будет проблем с загрузкой файлов.