springboot feign 404 小坑

RT,说是小坑,其实不算是坑,之所以说是小坑,主要还是因为对 @FeignClient 的属性掌握的不够。这篇文字的重要角色是 @FeignClienpath 属性。

言归正传,还是先描述一下此小坑情况:
在 springboot 中集成并使用 openfeign 后,如果你出现了调用接口获得 404 ,那么恭喜你可能是中奖了。

下面说一下前因后果:
1.很多时候我们会保留服务的 server.context-path 配置,如果你的项目没有设置这个配置,那么你应该不会遇到 404 问题。
2.使用 @FeignClien 常用的是 name、fallbackFactory、fallback 属性,如果你没有关注过 path 属性。那么你可能有幸中奖。
3.这个 path 就是对应被调用服务的 context-path 值,正确配置 path 后问题便会解决。

例如,要调用的服务URL是:http://192.168.1.11:8080/shanhy/test/show,其中 /shanhy 为该服务的 context-path,那么这个时候 path 属性就应该为 /shanhy

总结:你的 path+下面方法上的Mapping = 请求地址端口之后的URI
比如我下面的代码:

public interface ExampleApi {
	@GetMapping("/test10/{id}")
	public ResultVO demo10(@PathVariable("id") String id);
}
@FeignClient(name = "shanhy-example1", path = "/shanhy-example1/example", fallbackFactory = ExampleHystrixFeignFallBackFactory.class)
public interface ExampleFeignClient extends ExampleApi {
}

所对应的HTTP请求地址就是: http://xxx.xxx.xxx.xxx:8080/shanhy-example1/example/test10/66


(END)

发布了378 篇原创文章 · 获赞 1419 · 访问量 632万+

猜你喜欢

转载自blog.csdn.net/catoop/article/details/101021847