feign.FeignException$NotFound: [404] during [GET] to [http://mms-core/test/get?name=%E9%80

  1. OpenFeign 介绍
    OpenFeign 是一种声明式、模板化的HTTP客户端。在 SpringCloud 中使用OpenFeign,可以做到使用HTTP请求访问远程服务,就像调用本地方法一样。
  2. 报错信息
feign.FeignException$NotFound: [404] during [GET] to [http://mms-core/test/get?name=%E9%80%9A%E8%BF%87web%E8%B0%83%E7%94%A8%E7%9A%84] [AssetInfoApi#get(String)]: [<!doctype html><html lang="en"><head><title>HTTP Status 404 – Not Found</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} ... (431 bytes)]
	at feign.FeignException.clientErrorStatus(FeignException.java:219) ~[feign-core-11.8.jar:na]
	at feign.FeignException.errorStatus(FeignException.java:194) ~[feign-core-11.8.jar:na]
	at feign.FeignException.errorStatus(FeignException.java:185) ~[feign-core-11.8.jar:na]
	at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:92) ~[feign-core-11.8.jar:na]
	at feign.AsyncResponseHandler.handleResponse(AsyncResponseHandler.java:96) ~[feign-core-11.8.jar:na]
  1. 报错原因
    因为服务配置了上下文路径 server.servlet.context-path: /mms-core,所以@FeignClient 需要 path = “mms-core” 如果不加就会报404找不到接口。
  2. @FeignClient 常见属性
 5. name:指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现
 6. url: url一般用于调试,可以手动指定@FeignClient调用的地址
 7. decode404:当发生http 404错误时,如果该字段位true,会调用decoder进行解码,否则抛出FeignException
 8. configuration: Feign配置类,可以自定义Feign的Encoder、Decoder、LogLevel、Contract
 9. fallback: 定义容错的处理类,当调用远程接口失败或超时时,会调用对应接口的容错逻辑,fallback指定的类必须实现@FeignClient标记的接口
 10. fallbackFactory: 工厂类,用于生成fallback类示例,通过这个属性我们可以实现每个接口通用的容错逻辑,减少重复的代码
 11. path: 定义当前FeignClient的统一前缀,当我们项目中配置了server.context-path,server.servlet-path时使用
  1. 参考文档
    @FeignClient使用详解 https://blog.csdn.net/xhwangSGTL/article/details/111991017
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值