记一次扯dan的错误feign.FeignException$NotFound: status 404 reading UserFeign#findByPage()
feign.FeignException$NotFound: status 404 reading UserFeign#findByPage()
at feign.FeignException.clientErrorStatus(FeignException.java:165) ~[feign-core-10.4.0.jar:na]
at feign.FeignException.errorStatus(FeignException.java:141) ~[feign-core-10.4.0.jar:na]
at feign.FeignException.errorStatus(FeignException.java:133) ~[feign-core-10.4.0.jar:na]
at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:92) ~[feign-core-10.4.0.jar:na]
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:151) ~[feign-core-10.4.0.jar:na]
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:80) ~[feign-core-10.4.0.jar:na]
at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103) ~[feign-core-10.4.0.jar:na]
at com.sun.proxy.$Proxy76.findByPage(Unknown Source) ~[na:na]
at cn.yh.controller.TestController.findByPage(TestController.java:25) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_301]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_301]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_301]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_301]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
这个错误呢就是上面的这个使用Nacos注册中心,并且使用Feign调用服务的了。需要实现的就是用MP分页查询,再提供一个消费者调用它就行了。
服务提供方的controller层
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/findByPage")
public List<User> findByPage(){
return userService.findByPage();
}
}
服务提供方的feign客户端
@FeignClient("provider")
public interface UserFeignClient {
@GetMapping("/user/findByPage")
List<User> findByPage();
}
服务调用方的 controller
@RestController
@RequestMapping("/consumer")
public class UserController {
@Autowired
private UserFeignClient feignClient;
@GetMapping("/find")
public List<User> findByPage(){
List<User> userList = feignClient.findByPage();
userList.forEach(System.out::println);
return userList;
}
}
然后开启服务,nacos服务注册正常、依赖添加正常、注解添加正常....5、4、3、2、1发射,giao,发射失败,各部注意,发射失败,错误已提交,然后排查,自己没排出来,还请教了别人,结果大佬也没排出来,中间debug的过程就不展示了。。。。
最后,由我自己展开地毯式搜索,md,feign客户端的@FeignClient("provider")注解,名称写错了,真是扯着dan了,因为我们要调provider的服务么,所以这个注解的名称自然也是provider了,我写的是consumer调用方的了。真的是....大家警以为戒啊。