Method search not annotated with HTTP method type (ex. GET, POST)

遇到这个问题,想必是使用 Fegin 的时候遇到的,不废话,我们直接上解决方案:

 

1.检测 接口上 是否有使用 HTTP接口注解,  如果没有就加上 :

示例:

    @PostMapping(value = "/test/hello")
    Integer hello();

2.在项目里使用Feign的时候,是否采取了FeignConfig 配置方式,那么就需要注意是否FeignConfig里包含 代码:

    @Bean
    public Contract feignContract(){
        return new Contract.Default();
    }

如果有,你还想使用@PostMapping 或者@GetMapping 这一类注解 ,或者是说还想使用 @RequestMapping一类的注解,那么就把上面的这个代码注释掉即可。

 

为什么,因为如果使用了 new.Contract.Default() 相当于把fegin组件默认使用的 ‘SpringMVC 契约’ 给替换成  ‘fegin自带契约’。

 

那么,如果你就是想配置这个 Contract ,那就使用 @RequestLine即可。 

示例(注意格式 ,使用@RequestLine的时候 ,访问的方式 get/post 是直接写在 value里面 与具体的访问地址以 空格 相隔):

    @RequestLine(value = "POST /test/hello")
    Integer hello();

 

说白了,也就是所谓使用‘不同契约’,然后遵循不同得规则罢了。

 

 

 

SpringMVC  契约 :

@PostMapping 、@GetMapping、@RequestMapping 等等

传参使用 @RequestParam 、@RequestBody

 

Fegin 契约 :

@RequestLine

传参使用 @Param  

 

 

 

 

 

 

 

 

 

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小目标青年

对你有帮助的话,谢谢你的打赏。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值