如何在微服务体系结构中使用伪装客户端上传多个Multipart文件

问题描述 投票:0回答:1

我正在尝试使用伪装客户端上载多个多部分文件,但无法执行。

[经过几次研究,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 [dispatcherServlet]的Servlet.service()引发异常[请求处理失败;嵌套异常为feign.codec.EncodeException:无法编写请求:找不到根本原因的请求类型[[Lorg.springframework.web.multipart.MultipartFile;]和内容类型[multipart / form-data]]的合适的HttpMessageConverterfeign.codec.EncodeException:无法编写请求:找不到适合请求类型[[Lorg.springframework.web.multipart.MultipartFile;]和内容类型[multipart / form-data]]的HttpMessageConverter

我正在尝试使用伪装客户端上载多个多部分文件,但无法执行。经过少量研究,使用Feign上传文件-multipart / form-data文件上传spring cloud feign ...

java microservices multipart spring-cloud-feign
1个回答
0
投票

您应该在伪装配置期间设置编码器:

© www.soinside.com 2019 - 2024. All rights reserved.