springboot中feign.FeignException: status 404 reading低级错误

@RestController与@Controller注解使用错误

今天在消费者调用服务端业务时出现404错误信息。

排查问题时发现,消费者正常对服务端发起了调用信息,服务端也接受到了调用信息,并返回了结果,但是消费者却没有收到返回的结果,所以报404错误。只在消费者这边报了404错误

那么这个时候问题是在服务端还是在消费者这边呢,首先我检查了两者的配置文件,以及服务注册情况,发现都正常,而消费者这边除了404的错误也没其他的错误信息。所以我认为还是服务端的问题。

一开始服务端没有加日志信息,所以在调用时控制台只有少量的输出信息,没有具体的运行日志,那么加上日志。然后再次让消费者发起调用。

@PostMapping("/selectUserCode")
public SysUserBean selectUserCode(@RequestParam("userCode") String userCode){
    SysUserBean sysUserBean=userBeanMapper.selectUserCode(userCode);
    return sysUserBean;
}

在调用对服务端控制台中输出的日志信息逐条查看,还是没发现问题。

这就难道我了,网上各种找资料尝试都不行,然后我就想直接返回一个字符串试试。

@PostMapping("/selectUserCode")
public String selectUserCode(@RequestParam("userCode") String userCode){
    SysUserBean sysUserBean=userBeanMapper.selectUserCode(userCode);
    return "qwwqweqweqew";
}

这个时候在调用,终于有错误信息了,DispatcherServlet这个系列下出现404,这不是一般在找不到页面才出现的吗,怎么会在这里出现,然后我将代码拉到最上面发现,我使用了@Controller这个注解,这下问题就明白了,在直接使用@Controller时,如果没做其他申明或配置,在返回结果时就会查找项目中的页面,返回页面数据。

然后我将@Controller换成@RestController这个时问题解决了,用错注解自己玩自己

你可能感兴趣的:(java)