Загрузить MultipartFile с FeignClient - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть микросервис A, который предоставляет контроллер, например, для вызовов внешнего интерфейса. Внутри контроллера я называю свой feignClient. Задача FeignClient - подключиться к выделенному микросервису B.


Controller:

private final ServiceClient serviceClient;


@RequestMapping(path="somepath", method = RequestMethod.POST)
public void ResponseEntity<Void> uploadFile(Dto dto, @RequestParam("file") MultipartFile){

return serviceClient.uploadFile(dto,file);

}

FeignClient:

public interface ServiceClient{

@RequestMapping(method=POST, path= "somepath")
ResponseEntity<Void> uploadFile(Dto dto, @RequestParam("file") Multipart file);

}

The controller of the microservice B has the same method parameters as the uploadFile Method of the ServiceClient.

При этой установке я получаю ошибку CurrentRequest is not a multipart request. Я уже прочитал кое-что о StackOverflow, и люди предложили проверить заголовки, чтобы не добавлять контент-тип: application / json. Кроме того, я попытался использовать аннотацию @Headers пакета feign. Все, что не сработало.

Некоторые вопросы:

  1. Я вынужден использовать те же атрибуты метода в FeignClient, что и в микросервисе, к которому он подключается? Я прочитал кое-что об изменении аннотации с RequestParam на RequestPart. Означает ли это также поменять местами аннотации в микросервисе b?
  2. Я уже пытался поменять местами в Microservice A на @Multipart Annotation в Controller и FeignClient, чтобы выполнить что-то вроде развертывания try and error. Проблема здесь в том, что когда я пытаюсь построить проект с помощью Maven, я получаю следующую ошибку:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'Controller' defined in file ...: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'BeanName': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: Method has too many Body parameters: <UploadFile of ServiceClient>
...