【发布时间】:2020-02-01 07:24:19
【问题描述】:
我正在尝试使用 feign 客户端上传多个分段文件,但我无法这样做。
经过一番研究, File Upload Using Feign - multipart/form-data
File upload spring cloud feign client
Array Multipart[] file upload using Feign client
客户端:
@FeignClient(name = "file-server", configuration = {FileUploadService.MultipartSupportConfig.class})
@RequestMapping
public interface FileUploadService {
@RequestMapping(value = "/upload", method = RequestMethod.POST, consumes = MULTIPART_FORM_DATA_VALUE)
public @ResponseBody
List<FileUploadResponseDTO> handleFileUpload(@RequestPart(name = "file") MultipartFile[] file);
@Configuration
public class MultipartSupportConfig {
@Autowired
private ObjectFactory<HttpMessageConverters> messageConverters;
@Bean
@Primary
@Scope("prototype")
public Encoder feignEncoder() {
return new SpringFormEncoder(new SpringEncoder(messageConverters));
}
}
我正在尝试访问的模块:
@PostMapping(value = "/upload", consumes = MULTIPART_FORM_DATA_VALUE)
@ApiOperation(UPLOAD_FILE)
public List<FileUploadResponseDTO> uploadFiles(@RequestPart(name = "file") MultipartFile[] file){
System.out.println("****hello ****");
return fileUploadService.uploadFiles(file);
}
以上对单个 Multipart 文件工作正常,但对多个文件显示以下错误:
Servlet.service() 用于路径 [] 上下文中的 servlet [dispatcherServlet] 引发异常 [请求处理失败;嵌套异常是 feign.codec.EncodeException:无法写入请求:没有为请求类型 [[Lorg.springframework.web.multipart.MultipartFile;] 和内容类型 [multipart/form-data]] 找到合适的 HttpMessageConverter,根本原因 feign.codec.EncodeException:无法写入请求:没有为请求类型 [[Lorg.springframework.web.multipart.MultipartFile;] 和内容类型 [multipart/form-data]
找到合适的 HttpMessageConverter【问题讨论】:
标签: java microservices multipart spring-cloud-feign