FeignClient convertit GET méthode POST

Dans Kamil:

Je ne sais pas ce que je fais mal, mais à chaque fois client Feindre méthode convertit déclaré comme get type poste.

@FeignClient(name = "my-service", url = "http://localhost:8114", path = "service")
public interface MyServiceClient {

    @RequestMapping(method = GET, value = "/clients")
    Client getClients(@QueryMap MyPojo pojo);
}

@Getter
@Setter
public class MyPojo {

    @NotNull
    private String someValue;
    @NotNull
    private SomeEnum someEnum;
}

Cette configuration doit être résolu à cette demande:
GET http://localhost:8114/service/clients?someValue=foo&someEnum=bar

Mais chaque fois que je suis obtenir ce résultat:

{
  "timestamp": 1542378765498,
  "status": 405,
  "error": "Method Not Allowed",
  "exception": "org.springframework.web.HttpRequestMethodNotSupportedException",
  "message": "Request method 'POST' not supported",
  "path": "/service/clients"
}

Cependant, il fonctionne très bien quand je le fais de cette façon:

@RequestMapping(method = GET, value = "/clients?someValue=foo&someEnum=bar")
Client getClients();

Je travaille sur la spring-cloud-starter-feign 1.2.7.RELASEversion qui contient la feign-core/sl4fj/hystrix/ 9.3.1version, mais j'ai aussi testé sur la version 10.1.0, avec ce même résultat.

Que dois-je faire pour résoudre ce problème?

Dans Kamil:

Dans mon projet , je l' utilise spring-cloud-dependenciesavec la Camden.SR7version qui contient la 9.3.1version feindre, à l' heure actuelle , la nouvelle version est Finchley.RELEASEqui contient feindre 9.7et je vois qu'il est dédié à spring-boot 2.x.x, mais mon infrastructure entière (config / eureka serveur) fonctionne sur 1.5.xil produit les prochains numéros. Je pris un coup d' œil à la documentation de GitHub pour feindre, et j'ai découvert l' @Paramannotation pourrait être utile, mais quand je l' utilise dans la méthode avec 3 arguments, il émet une exception Method has too many Body parameters~. Enfin annotation @RequestParamde printemps fonctionne comme solution, mais je ne trouve aucune source d'information que nous pouvons combiner ces annotations.

@RequestMapping(method = GET, value = "/clients")
Client getClients(@RequestParam("someValue") String someValue, @RequestParam("someEnum") String someEnum);

Je ne l' ai pas trouvé la spring-cloud-dependenciesversion qui contient 9.7feindre et il est dédié à des spring-boot 1.5.xapplications.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=189543&siteId=1
conseillé
Classement