2

偽装を使用して画像をアップロードする際に問題が発生しています。スプリング クラウドを使用した複数のサービスがあります。以下の私の依存関係のバージョン

spring boot - 1.4.3.RELEASE
spring-cloud-starter-feign - 1.1.3.RELEASE
io.github.openfeign.form - 2.2.1
io.github.openfeign.form - 2.2.1

私のフォームには、以下のMultipartfile exを持つフィールドがあります

public class MyFrom {
    private String field1;
    private String field2;
    private MultipartFile image;

    //getters and setters
}

そして、偽のクライアントでそれを渡します

@RequestMapping(value = { "/api/some-task},
        method = RequestMethod.POST,
        consumes = {"multipart/form-data"})
ResponseEntity<MyForm> addPromoTask(@RequestBody MyForm request);

コードに SpringFormEncoder を既に追加しましたが、エンコーダーのコードを確認しましたが、Multipartfile が RequestBody に含まれている場合はサポートされていないようです。

@FeignClient(value = "some-feign",
    fallback = SomeTaskClient.SomeTaskClienttFallback.class,
    configuration = SomeTaskClient.CoreFeignConfiguration.class)
public interface SomeTaskClient extends SomeTaskApi {

    @Configuration
    class CoreFeignConfiguration {

        @Bean
        @Primary
        @Scope(SCOPE_PROTOTYPE)
        Encoder feignFormEncoder() {
            return new SpringFormEncoder();
        }
    }
}

以下のリンクで複数の @RequestPart を渡すことができることを見てきましたが、うまくいかないようです。複数の本体パラメーターを渡しているというエラーが表示されます。

https://github.com/bilak/spring-multipart-feign-poc/blob/master/src/main/java/com/github/bilak/poc/ContentClient.java

4

2 に答える 2