Search code examples
multipartform-datanoclassdeffounderrorfeign

java.lang.NoClassDefFoundError: feign/Request$Body in feign while adding support for multipart/form-data


I am trying to proxy multipart request via feign.

@PostMapping(value = "{pathUri1}/{pathUri2}",consumes = MediaType.MULTIPART_FORM_DATA_VALUE,produces = MediaType.APPLICATION_JSON_VALUE)
ResponseEntity<BaseResponse<?>> uploadFileCall(@PathVariable(value = "pathUri1") String pathUri1, @PathVariable(value = "pathUri2") String pathUri2, @RequestPart(name = "file") MultipartFile file, @RequestParam Map<Object,Object> requestParam, @RequestHeader HttpHeaders httpHeaders);

this is service call.

@Configuration
class MultipartSupportConfig {

    @Autowired
    ObjectFactory<HttpMessageConverters> messageConverters;

    @Bean
    @Primary
    @Scope("prototype")
    public Encoder feignFormEncoder() {
        return new SpringFormEncoder(new SpringEncoder(messageConverters));
    }
}

added encoder config for multipart/form-data .

I have followed this https://github.com/OpenFeign/feign-form

But I am getting hystrixRunTimeException which is caused because of java.lang.NoClassDefFoundError: feign/Request$Body error.


Solution

  • Use feign-form-spring 3.4.1 version.

    Gradle

    compile(group: 'io.github.openfeign.form', name: 'feign-form-spring', version: '3.4.1')
    

    Maven

    <dependency>
            <groupId>io.github.openfeign.form</groupId>
            <artifactId>feign-form</artifactId>
            <version>3.4.1</version>
    </dependency>
    

    Check requirements https://github.com/OpenFeign/feign-form#requirements