解决SpringCloud Feign传对象参数调用失败的问题


Posted in Java/Android onJune 23, 2021

SpringCloud Feign传对象参数调用失败

  • 不支持GET请求方式
  • 使用Apache HttpClient替换Feign原生httpclient
  • @RequestBody接收json参数

bootstrap-local.yml

feign:
  httpclient:
    enabled: true

pom.xml

<!-- 使用Apache HttpClient替换Feign原生httpclient -->
<dependency>
    <groupId>com.netflix.feign</groupId>
    <artifactId>feign-httpclient</artifactId>
    <version>8.18.0</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.3</version>
</dependency>

feignClient:

@FeignClient(name = "hd-ucenter-server", fallback = SysTestServerFallbackImpl.class)
public interface SysTestServer { 
    @RequestMapping(value = "/test/test", method = RequestMethod.POST, consumes = "application/json")
    Object test(CurrentUser currentUser);
}

RestController:

@RestController
@PostMapping("/test")
public class TestController {
 
    @RequestMapping(value = "/test")
    public Object test(@RequestBody CurrentUser currentUser) {
        System.out.printf("调用test\n");
       return currentUser;
    }
}

SpringCloud中Feign异常无法传递的问题

因为 cloud内部抛出异常不进行处理,Feign获取spring默认包装异常结果如下:

{
"timestamp": "2017-12-27 15:01:53",
"status": 500,
"error": "Internal Server Error",
"exception": "com.keruyun.loyalty.commons.master.exception.BusinessException",
"message": "Request processing failed; nested exception is {\"code\":1000, \"message\":\"test Exception\"}",
"path": "/coupon/cloud/commercial/8469"
}

自定义的异常处理下返回状态

@Slf4j
@RestControllerAdvice
public class GlobalExceptionHandlerResolver {
 
    //内部服务异常处理
    @ExceptionHandler(InternalApiException.class)
    public ResultResp<?> handleGlobalException(HttpServletResponse response, InternalApiException internalApiException) {
        ResultResp<?> resultResp = internalApiException.getResultResp();
        log.error(internalApiException.getMessage(), internalApiException);
        response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());//返回500异常
        response.setContentType(MediaType.APPLICATION_JSON_UTF8.toString());
        return resultResp;
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Java/Android 相关文章推荐
java中重写父类方法加不加@Override详解
Jun 21 Java/Android
springboot如何初始化执行sql语句
Jun 22 Java/Android
JUnit5常用注解的使用
Jul 02 Java/Android
Java Socket实现多人聊天系统
Jul 15 Java/Android
Java反应式框架Reactor中的Mono和Flux
Jul 25 Java/Android
SpringBoot SpringEL表达式的使用
Jul 25 Java/Android
SpringDataJPA实体类关系映射配置方式
Dec 06 Java/Android
spring cloud eureka 服务启动失败的原因分析及解决方法
Mar 17 Java/Android
详解Spring Security中的HttpBasic登录验证模式
Mar 17 Java/Android
Spring this调用当前类方法无法拦截的示例代码
Mar 20 Java/Android
InterProcessMutex实现zookeeper分布式锁原理
Mar 21 Java/Android
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
Jul 07 Java/Android
详解Java实现设计模式之责任链模式
Jun 23 #Java/Android
Spring boot应用启动后首次访问很慢的解决方案
Java并发编程之详解CyclicBarrier线程同步
如何解决springcloud feign 首次调用100%失败的问题
分析设计模式之模板方法Java实现
基于Java的MathML转图片的方法(示例代码)
Jun 23 #Java/Android
springboot如何初始化执行sql语句
You might like
PHP源码之explode使用说明
2011/08/05 PHP
PHP调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
浅析十款PHP开发框架的对比
2013/07/05 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
2019/07/03 PHP
jquery 表单取值常用代码
2009/12/22 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
JS中操作JSON总结
2020/12/06 Javascript
jQuery实现拖拽效果插件的方法
2015/03/23 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
利用vue重构有赞商城的思路以及总结整理
2019/02/21 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
python读写文件write和flush的实现方式
2020/02/21 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
公司活动邀请函
2014/01/24 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
2014幼儿教师个人工作总结
2014/12/03 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
Django 实现jwt认证的示例
2021/04/30 Python
Go语言基础map用法及示例详解
2021/11/17 Golang