2016-05-09 1 views
4

Je reçois l'erreur: « méthode a trop de paramètres corporels » lorsque vous essayez de générer un client Spring FeindrePuis-je générer un client Spring Feign avec des paramètres Multipart?

@RequestMapping(value="/media", method=RequestMethod.POST) 
String uploadMedia(@RequestHeader("Authentication") String token, 
    @RequestPart("media") MultipartFile audio, 
    @RequestPart("a-json-object") SomeClass someClazz, 
    @RequestPart("another-json-object") AnotherClass anotherClazz); 

J'ai trouvé la solution suivante qui fonctionne lors de l'utilisation des annotations Feindre réguliers, mais pas avec annotations Spring MVC:

'Too many body parameters' Exception on Feign Client

+0

Pas maintenant, non. – spencergibb

Répondre

1

Il devrait être possible maintenant. Ajoutez les dépendances suivantes:

<dependencies> 
... 
<dependency> 
    <groupId>io.github.openfeign.form</groupId> 
    <artifactId>feign-form</artifactId> 
    <version>2.2.0</version> 
</dependency> 
<dependency> 
    <groupId>io.github.openfeign.form</groupId> 
    <artifactId>feign-form-spring</artifactId> 
    <version>2.2.0</version> 
</dependency> 
... 

et utiliser cette configuration client:

@FeignClient(name = "file-upload-service", configuration = FileUploadServiceClient.MultipartSupportConfig.class) 
public interface FileUploadServiceClient extends IFileUploadServiceClient { 

    @Configuration 
    public class MultipartSupportConfig { 

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

Exemple a été prise à partir de: feign-form docs