2015-03-04 2 views
1

Я использую Spring Boot. Метод, который я звоню в моем контроллере выглядит следующим образом:Обновление до Tomcat 8 разрывов MultipartFile upload

@RequestMapping(value = "/{customerId}/files/{id}/addFile", method = RequestMethod.POST, 
     produces = "application/json; charset=UTF-8") 
@ResponseBody 
public Response uploadFile(@PathVariable String customerId, @PathVariable String id, 
     @RequestParam("uploadedFile") MultipartFile file) throws IOException { 

После обновления до Tomcat 8 Я получаю следующее сообщение об ошибке при вызове этого метода. Я поставил точку останова на первой линии, которая никогда не достигнутую .:

org.springframework.web.util.NestedServletException: обработка запроса не удалось; вложенное исключение - org.springframework.web.multipart.MultipartException: не удалось разобрать запрос на множественный сервлет; вложенное исключение java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: поток закрыт

Кто-нибудь сталкивался с этим вопросом?

+0

Можете ли вы отправить свой pom.xml или любую другую конфигурацию для вашего инструмента сборки. – minion

+0

Я не могу опубликовать свой pom.xml, но я могу подтвердить, что это началось, когда мой родительский pom обновил следующее: spring-boot 1.1.5.RELEASE to 1.1.8.RELEASE & tomcat 7.0.54 to 8.0.12 – l15a

+0

Вы пробовали с более современной версией Tomcat 8? 8.0.20 является последней на момент написания. Кроме того, есть [руководство по началу работы] (https://github.com/spring-guides/gs-uploading-files) для загрузки файлов с помощью Spring Boot. Он отлично работает с Tomcat 8. Возможно, вы можете посмотреть руководство и выяснить, что в вашем приложении отличается. –

ответ

0

Попробуйте добавить multipart.maxFileSize и multipart.maxRequestSize в файл application.properties. Кажется, что SpringBoot имеет значение по умолчанию 128 КБ, которое сломало мою загрузку.

+0

Стоит упомянуть, если предлагаемые изменения сработали для вас, когда вы столкнулись с одной и той же проблемой. – vagabond

+0

Жаль, что я думал, что добавление multipart.maxFileSize и multipart.maxRequestSize исправило мою проблему, но на самом деле этого не произошло. Единственным решением было понизить весеннюю загрузку-автоконфигурацию до версии 1.2.1. Вы можете найти ту же проблему [здесь] (https://github.com/spring-projects/spring-boot/issues/2862) –

+0

Теперь я ' ve нашел решение для моей проблемы, помимо понижения Spring-boot-autoconfigure. Я создал MultipartConfigElement Bean, где я установил местоположение Multipart. –

Смежные вопросы