最近在使用微服务遇到一个feign 405的问题,一直很困惑,提出来希望大神们指导一二。

我们用的是springCloud的openFeign:

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

feign:

@PostMapping(value = "/automatic_sign_for", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)void automaticSignFor() throws Exception;

Controller:

@ApiOperation(value = "Automatic sign for orders that have no sign in status information in a period of time after delivery",tags = {"Automatic sign for APIs"}, nickname = "Automatic sign for")@ApiResponses(value = {@ApiResponse(code = 200, message = "Succ"),@ApiResponse(code = 401, message = "You are not authorized to access to this API"),@ApiResponse(code = 403, message = "Accessing the resource you were trying to reach is forbidden"),@ApiResponse(code = 404, message = "The resource you were trying to reach is not found")})@PostMapping(value = "/automatic_sign_for", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)public void automaticSignFor() throws Exception {shippingTaskService.automaticSignFor();}

调用:

    @Resourceprivate IShippingTaskFeign shippingTaskFeign;@Testpublic void automaticSignForFeignTest() throws Exception {shippingTaskFeign.automaticSignFor();}

然后报错如下:

feign.FeignException: status 405 reading IShippingTaskFeign#automaticSignFor()at feign.FeignException.errorStatus(FeignException.java:78)at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:93)at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:149)at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:78)at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103)at com.sun.proxy.$Proxy192.automaticSignFor(Unknown Source)at ShiphubTaskTest.automaticSignForTest(ShiphubTaskTest.java:38)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:567)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74)at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)at org.junit.runners.ParentRunner.run(ParentRunner.java:363)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)at org.junit.runner.JUnitCore.run(JUnitCore.java:137)at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

在网上查了两种feign 405 的相关解决方法:

  • 在Feign调用的时候,接收的参数加上@Requestparam注解;但是我们这个方法没有参数,所以不适用。而且我加上了一个没用的参数后也是行不通的。
  • 使用 github 的 feign-httpclient 替换 feign默认的httpclient:
            <dependency><groupId>io.github.openfeign</groupId><artifactId>feign-httpclient</artifactId><version>10.4.0</version></dependency>

    但还是不好使。

请大神指教!

微服务 Feign 405相关推荐

  1. 简单的微服务feign之间调用授权/安全验证

    不会写开头,就这样吧~ 我想让使用这个验证组件开发者配置越少越好 所以我使用了注解 类似于springboot的自动装配类 创建@EnableSecurityAuth注解作用于在application ...

  2. [Spring cloud 一步步实现广告系统] 11. 使用Feign实现微服务调用

    上一节我们使用了Ribbon(基于Http/Tcp)进行微服务的调用,Ribbon的调用比较简单,通过Ribbon组件对请求的服务进行拦截,通过Eureka Server 获取到服务实例的IP:Por ...

  3. feign响应拦截_[Spring cloud 一步步实现广告系统] 11. 使用Feign实现微服务调用

    上一节我们使用了Ribbon(基于Http/Tcp)进行微服务的调用,Ribbon的调用比较简单,通过Ribbon组件对请求的服务进行拦截,通过Eureka Server 获取到服务实例的IP:Por ...

  4. SpringCloud(第 016 篇)电影微服务,定制Feign,一个Feign功能禁用Hystrix,另一个Feign功能启用Hystrix...

    2019独角兽企业重金招聘Python工程师标准>>> SpringCloud(第 016 篇)电影微服务,定制Feign,一个Feign功能禁用Hystrix,另一个Feign功能 ...

  5. SpringCloud(第 017 篇)电影微服务接入Feign,添加 fallbackFactory 属性来触发请求进行容灾降级...

    2019独角兽企业重金招聘Python工程师标准>>> SpringCloud(第 017 篇)电影微服务接入Feign,添加 fallbackFactory 属性来触发请求进行容灾 ...

  6. 微服务feignclient_[Spring cloud 一步步实现广告系统] 11. 使用Feign实现微服务调用

    上一节我们使用了Ribbon(基于Http/Tcp)进行微服务的调用,Ribbon的调用比较简单,通过Ribbon组件对请求的服务进行拦截,通过Eureka Server 获取到服务实例的IP:Por ...

  7. 微服务秒杀项目整合网关+feign+redis分离热点商品分别下单示例

    文章目录 配置文件和通用文件 通用结果类型: 返回码: 统一异常处理: 网关 feign服务 redission配置 controller service:热点商品和普通商品分开下单 消息队列监听订单 ...

  8. 使用feign调用注解在eureka上的微服务,简单学会微服务

    使用feign调用注解在eureka上的微服务. 首先,确保所有服务(调用方与被调用方)都被注册在同一个eureka服务上. 1. 在调用方添加依赖(万事第一步,加依赖) <dependency ...

  9. springcloud feign 服务调用其他服务_springCloud微服务项目 构建公共的feign调用

    在微服务项目中加入有一个微服务的接口,很多其他的微服务都需要调用它,那么我们可以写在公共的项目中,而不需要每个微服务都建立一个相应 的feign 1.先在common 公共项目中建一个公共feign调 ...

最新文章

  1. 在线作图|如何绘制一张好看的点棒图
  2. 安卓学习-界面-布局-FrameLayout
  3. 万字归纳总结 | 数据库表设计与SQL编写技巧
  4. golang json判断类型
  5. 腾讯第一大股东 Prosus 18亿美元收购 StackOverFlow
  6. JSP 页面 嵌入 google API 地图
  7. 清除计算机垃圾cmd命令,cmd清理垃圾命令代码是什么
  8. 数学符号——指示函数(样子像空心的1的一个数学符号)
  9. 小米路由mini刷潘多拉及老毛子固件-详细教程
  10. JAVA字符串格式化-String.format()的使用总结
  11. 计算机主板性能参数,影响电脑性能的硬件参数之主板
  12. McAfee解读风险管理之道 企业安全面临新挑战
  13. 你所不知的米聊和微信的前身——酷啦啦
  14. 微信 8.0 「裂开」「炸弹」的特效代码来了
  15. 【Linux】进程信号
  16. springboot自动创建Oracle,一键生成项目 SpringBoot项目代码生成器 支持Oracle 支持MySql...
  17. 数据预处理(纯干货,适合小白学习)
  18. 操作系统安装和u盘认识
  19. 记录安装Ubuntu Server 17.04, 安装hwinfo 失败的解决办法
  20. 热水IC卡预付费充值系统

热门文章

  1. Codeforces Round #626(Div.2) 解题报告
  2. 已经发车的票还能取出来吗_火车开车后还能取票吗
  3. 写一篇进入“航校”半年,校园学习生活的心得体会和收获感悟,要求字数不少于500字...
  4. Maven中scope标签的作用
  5. 开启springcloud全家桶:springcloud常见面试题
  6. bilibili2020 1024ctf安全挑战赛(上)
  7. iOS 11.2 最新真机测试包(12.05)
  8. 背包问题(分支限界法)
  9. 中国象棋男女冠军贺兰山下上演“龙凤弈”
  10. 灰色相关性matlab程序,灰色关联度分析MATLAB程序