【debug】feign.FeignException$NotFound: status 404 reading 错误原因分析

SpringCloud项目报错:
在这里插入图片描述
问题分析:
404错误,未找到服务资源,提示没有找到DeptClientService.queryById(Long)方法;

尝试解决:

  1. 检查路径是否错误
    服务消费者端和服务提供者端都采用@GetMapping,且路径一样,没有问题。
  2. 检查DeptClientService.queryById(Long)方法,传入参数是否为Null,发现问题
    在这里插入图片描述
    没有加入@PathVariable注解,调用的方法接收不到参数。服务提供端自然找不到DeptClientService.queryById(Long)方法,所以报404错误

解决法案:
在处理类方法参数前加上@PathVairable注解,接收参数

    @GetMapping("/dept/get/{id}")
    public Dept queryById(@PathVariable Long id);

复习@PathVariable注解:(路径变量)

  • @PathVariable是spring3.0的一个新功能:接收请求路径中占位符的值,该功能在SpringMVC 向 **REST **目标挺进发展过程中具有里程碑的意义。

  • 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx”) 绑定到操作方法的入参中。

@Controller
@RequestMapping("hello")
public class HelloController2 {
    /**
     *3、占位符映射
     * 语法:@RequestMapping(value=”user/{userId}/{userName}”)
     * 请求路径:http://localhost:8080/hello/show5/1/james
     * @param ids
     * @param names
     * @return
     */
    @RequestMapping("show5/{id}/{name}")
    public ModelAndView test5(@PathVariable("id") Long ids ,@PathVariable("name") String names){
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg","占位符映射:id:"+ids+";name:"+names);
        mv.setViewName("hello2");
        return mv;
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值