SpringMVCプロジェクトを作成したとき、いくつかの詳細がこの問題を引き起こしました。
SpringMVCのインターフェイスは、キーボードを数回押す手間を省くために、次のように記述されます。
//Post @RequestParam 带参
@PostMapping("/t5")
public R t5(@RequestParam String param) {
log.info("t5===>"+"开始");
log.info("t5入参===>"+param);
log.info("t5===>"+"结束");
return R.ok();
}
キーボードをもう少し追加すればこれで終わりです
//Post @RequestParam 带参
@PostMapping("/t5")
public R t5(@RequestParam("name") String param) {
log.info("t5===>"+"开始");
log.info("t5入参===>"+param);
log.info("t5===>"+"结束");
return R.ok();
}
そのため、マイクロサービスを作成して偽のリモート呼び出しを使用すると、RequestParam.value() was empty on parameter 0
エラーが発生します。
問題は、エラーが偽のリモートインターフェイスで報告されることです。文言は次のとおりです。
@PostMapping("/testb/t5")
R t5(@RequestParam String param);
または
@PostMapping("/testb/t5")
R t5(String param);
次のように変更します
@PostMapping("/testb/t5")
R t5(@RequestParam("name") String param);
着信側が(「名前」)を追加するかどうかに関しては、問題は大きくありません。この問題の理由は、Feignの実装に関連しています。Feignの最下層はhttpclientを使用しています。この問題は下位バージョンで発生します。この問題は上位バージョンで修正されていると聞きました。