本机调试,需要调用其他某个服务,把FeignClient的url设置为测试环境的gateway地址,像如下这样:

可是却报如下异常:

debug到该client

 

对这个异常,在度娘上搜索,很多都说是因为被调用接口的@RequestParam参数的设置有问题。

但我觉得不是这样,至少对于这里的这个案例不是这样,因为后面我用其他方式修改了该Client后接口其实是可以调通的。

 

又去google上去搜,也没有找到可以合理解决或者解释该问题的答案,只能这样先放一放,放弃url的配置,而是采用name/path来配置OpenFeign.

 

几次调试后发现,其实只需要设置name(包括path)字段即可。

这样在cloud内部,调用的url是这样:

并且是可以调用成功的。

 

但上面这样修改有个问题,因为这个gateway在我这边项目里,也就是指微服务的网关id,因为我们希望所有请求都是通过gateway来转发。但如果所有的OpenFeign接口的name字段配置为gateway,不用说,spring肯定会提示IOC错误。

所以就改成了这样

Cloud生成的url:

说明上面这两种修改方式产生的结果是一样的。

另外,也可以使用path来配置更复杂的url层级。

 

最后,对于url的配置,目前还没弄明白,先写到这,后面再看看!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐