zoukankan      html  css  js  c++  java
  • Feign 自定义 ErrorDecoder (捕获 Feign 服务端异常)

    问题描述

    Feign 客户端捕获不到服务端抛出的异常

    问题解决

    重新 ErrorDecoder 即可,比如下面例子中在登录鉴权时想使用认证服务器抛出 OAuth2Exception 的异常,代码如下:

    import com.fasterxml.jackson.databind.ObjectMapper;
    import feign.Response;
    import feign.Util;
    import feign.codec.ErrorDecoder;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.oauth2.common.exceptions.OAuth2Exception;
    
    import java.io.IOException;
    
    @Configuration
    public class FeignErrorDecoder implements ErrorDecoder {
    
        @Override
        public Exception decode(String methodKey, Response response) {
            try {
                String message = Util.toString(response.body().asReader());
    
                ObjectMapper objectMapper = new ObjectMapper();
                OAuth2Exception oAuth2Exception = objectMapper.readValue(message, OAuth2Exception.class);
                return oAuth2Exception;
            } catch (IOException ignored) {
            }
    
            return decode(methodKey, response);
        }
    }
    
  • 相关阅读:
    docx python
    haozip 命令行解压文件
    python 升级2.7版本到3.7
    Pyautogui
    python 库搜索技巧
    sqlserver学习笔记
    vim使用
    三极管工作原理分析
    串口扩展方案+简单自制电平转换电路
    功率二极管使用注意
  • 原文地址:https://www.cnblogs.com/victorbu/p/12787702.html
Copyright © 2011-2022 走看看