今天遇到了题目这个错误,但是服务提供方自测是可以通过的,看了一会发现是接口定义与服务提供方Controller中的不一致,导致找不到服务
这里是Feign接口的代码
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")
public interface PaymentFeignService {
// 第一次把@PathVariable写成了@Param,导致报错404
@GetMapping(value = "/payment/get/{id}")
CommonResult<Payment> getPaymentByID(@PathVariable("id") Long id);
}
这里是服务提供者的Controller代码(注意,是服务提供者,不是消费者)*
@GetMapping(value = "/payment/get/{id}")
public CommonResult create(@PathVariable("id")Long id){
Payment payment= paymentService.getPaymentByID(id);
…… ……
}
}
所以说,如果报错404,就是Feign找不到与之匹配的服务提供者,那么就要在这上面多留意下了,不管是GetMapping的值还是@FeginCilent的值,都要核查一下