1
votes

java.lang.NoClassDefFoundError: feign / Request $ Body dans feign lors de l'ajout de la prise en charge de multipart / form-data

J'essaye de renvoyer une requête en plusieurs parties via feign.

@Configuration
class MultipartSupportConfig {

    @Autowired
    ObjectFactory<HttpMessageConverters> messageConverters;

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

ceci est un appel de service.

@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);

a ajouté la configuration de l'encodeur pour le multipart / form-data.

J'ai suivi ceci https://github.com/OpenFeign/feign-form

Mais j'obtiens hystrixRunTimeException qui est dû à java.lang.NoClassDefFoundError: feign / Request $ Body error.


0 commentaires

3 Réponses :


1
votes

Utilisez la version feign-form-spring 3.4.1.

Gradle

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

Maven

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

Vérifiez exigences https://github.com/OpenFeign/feign-form#requirements p>


0 commentaires

2
votes

Selon le document github open-feign , veuillez noter les versions du faux-formulaire:

  • toutes les versions de forme fictive antérieures à la version 3.5.0 fonctionnent avec les versions d'OpenFeign 9. *;
  • à partir de la version 3.5.0 de feign-form, le module fonctionne avec les versions d'OpenFeign 10.1.0 et supérieures.

0 commentaires

0
votes

La configuration suivante fonctionne pour moi:

    <dependency>
        <groupId>io.github.openfeign</groupId>
        <artifactId>feign-jackson</artifactId>
        <version>${feign.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    <dependency>
        <groupId>io.github.openfeign</groupId>
        <artifactId>feign-httpclient</artifactId>
        <version>${feign.version}</version>
    </dependency>

Où:

11.0

Hoxton.SR3


0 commentaires