私は私が間違ってやっているかわからないが、各時間装うクライアント変換方法は、ポストタイプにGETとして宣言しました。
@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;
}
このセットアップでは、この要求に解決する必要があります。
GET http://localhost:8114/service/clients?someValue=foo&someEnum=bar
しかし、それぞれの時間は、私はこの結果を取得しています:
{
"timestamp": 1542378765498,
"status": 405,
"error": "Method Not Allowed",
"exception": "org.springframework.web.HttpRequestMethodNotSupportedException",
"message": "Request method 'POST' not supported",
"path": "/service/clients"
}
私はこのようにそれを行うときしかし、それが正常に動作します:
@RequestMapping(method = GET, value = "/clients?someValue=foo&someEnum=bar")
Client getClients();
私は、に取り組んでいますspring-cloud-starter-feign 1.2.7.RELASE
含まれているバージョン、feign-core/sl4fj/hystrix/ 9.3.1
バージョン、私もこれと同じ結果で、10.1.0バージョンでそれをテストしました。
私はこの問題を解決するために何をすべき?
私のプロジェクトで、私は使用spring-cloud-dependencies
してCamden.SR7
含まれているバージョン9.3.1
の最新バージョンである現在の時点で、装うバージョンをFinchley.RELEASE
装う含まれている9.7
と私はそれが専用だ見るspring-boot 2.x.x
上で実行されますが、私の全体のインフラ(設定/ユーレカサーバー)1.5.x
それは次の問題を発生させます。私は装うためのgithubのドキュメントを見ていた、と私は発見された@Param
注釈が役に立つかもしれませんが、私は3つの引数を持つメソッドでそれを使用する場合は、例外がスローされますMethod has too many Body parameters~
。最後に注釈@RequestParam
春からは、回避策として動作しますが、私たちはこれらの注釈を組み合わせることができ、情報の任意のソースが見つかりませんでした。
@RequestMapping(method = GET, value = "/clients")
Client getClients(@RequestParam("someValue") String someValue, @RequestParam("someEnum") String someEnum);
私が見つかりませんでしたspring-cloud-dependencies
含まれているバージョン9.7
装うが、それは専用だspring-boot 1.5.x
アプリケーション。