Spring Boot Rest API - невозможно загрузить файл

Мы используем Spring Boot 1.5.17.RELEASE. У нас есть несколько сервисов, и мы используем сервис zuul в качестве шлюза API и сервис eureka в качестве реестра сервисов.

Метод контроллера в службе лицензий:

@PutMapping(value = "/{licenseId}/upload")
public ResponseEntity<ValidationResponse> upload(@PathVariable Long licenseId,
        @RequestParam("file") MultipartFile file) throws GenericException {

Когда я тестировал вышеуказанный метод API индивидуально (без шлюза API), я мог загружать файлы:

http://localhost:8061/licenses/7/upload

Но когда я тестировал API-шлюз, у меня было исключение:

http://localhost:8052/api/license-service/licenses/7/upload

Status is 400 Bad Request

ExceptionHandlerExceptionResolver - Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present]

Почему он НЕ работает с Zuul API Gateway? Требуется дополнительная конфигурация?

В сообщении об исключении довольно четко указано, что file, ожидаемый как часть запроса, отсутствует. Вы можете использовать что-то вроде Postman для отправки файлов в API и тестирования. Надеюсь это поможет.

Sid 09.11.2018 12:28

@ Сид, я думаю, ты не полностью прочитал мой вопрос. Я могу протестировать файл загрузки (используя Postman), если я обращаюсь к API индивидуально, но с шлюзом Zuul API он не работает

Krish 09.11.2018 12:32

Извините, если я это пропустил. Но исключение остается тем же, о том, что файл не найден. Возможно, вы пытаетесь опубликовать его из места, где нет файла.

Sid 09.11.2018 12:33

@ Нет, это там. После успешного вызова "локальный: 8061 / лицензии / 7 / загрузка". Я просто изменил URL-адрес на «локальный: 8052 / API / лицензия-сервис / лицензии / 7 / загрузка». он дает 400, и на консоли я вижу это сообщение

Krish 09.11.2018 12:35

Если это POST, вам также понадобится тело с составным файлом. Как вы это используете в обоих примерах?

Sid 09.11.2018 12:39

Да, я использую в обоих запросах. В основном, когда мы используем Zuul Gateway, он перенаправляет на настроенную службу внутренне. К сожалению, он работает индивидуально, но не работает с Zuul.

Krish 09.11.2018 12:44

В Spring Boot возникла проблема с запросами Multipart PUT. (Хотя это было исправлено, возможно, оно все еще работает некорректно с проксируемыми запросами ...) Итак, сначала проверьте, что произойдет, если вы измените аннотацию контроллера на @PostMapping.

Selindek 09.11.2018 16:10
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
304
0

Другие вопросы по теме