博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Feign支持PATCH方法
阅读量:6481 次
发布时间:2019-06-23

本文共 1097 字,大约阅读时间需要 3 分钟。

hot3.png

问题描述

FeignClient 中声明了这么一个方法

@RequestMapping(method = RequestMethod.PATCH, value = "/agents/{id}", consumes = "application/json") void update(@PathVariable("id")String id, @RequestBody Map
info);

其它得方法调用都能成功,就是这个方法调用得时候报异常:

com.netflix.hystrix.exception.HystrixRuntimeException: update timed-out and no fallback available....

解决过程

这个异常是 hystrix(断路器)抛出的,只能看出来调用超时。为了排除干扰,我先暂时禁用Feign的断路器:在配置文件加feign.hystrix.enabled: false,然后再次调用试试:

这次异常信息能看出来了,看来失败信息确实是被hystrix给吃了。。。

feign.RetryableException: Invalid HTTP method: PATCH executing PATCH http://agent-info/agents/0123456748...Caused by: java.net.ProtocolException: Invalid HTTP method: PATCH  at java.net.HttpURLConnection.setRequestMethod(HttpURLConnection.java:440)...

看来这个问题是因为java.net.HttpURLConnection.setRequestMethod 不支持PATCH方法,无法将请求发送出去。

HttpClient 应该支持PATCH方法。
谷歌一下关键词 spring feign httpclient patch 找到 

解决方式

netflix 有feign的httpclient支持。maven加入下面的依赖就搞定了。

  
io.github.openfeign
  
feign-httpclient
  
9.5.0

 

转载于:https://my.oschina.net/orange666/blog/1353250

你可能感兴趣的文章
POJ 3311 Hie with the Pie(状压DP + Floyd)
查看>>
Security updates and resources
查看>>
DNS为什么通常都会设置为14.114.114.114
查看>>
Sqoop架构(四)
查看>>
golang copy函数
查看>>
《你有多少问题要请示》精华集粹
查看>>
打印图片
查看>>
SHOW CREATE DATABASE Syntax
查看>>
rsync常见问题及解决办法
查看>>
MySQL日期 专题
查看>>
C#中禁止程序多开
查看>>
分布式缓存Redis使用以及原理
查看>>
Activity竟然有两个onCreate方法,可别用错了
查看>>
Linux经常使用命令(十六) - whereis
查看>>
Linux五种IO模型
查看>>
Bootstrap技术: 模式对话框的使用
查看>>
小知识,用myeclipes找jar
查看>>
in-list expansion
查看>>
设计原则(四):接口隔离原则
查看>>
基于react的滑动图片验证码组件
查看>>