- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我 try catch 从 FeignClient 连接的另一个微服务收到的异常。我制作了自定义的 ErrorDecoder,并且
public class CustomErrorDecoder implements ErrorDecoder {
private final Logger log = LoggerFactory.getLogger(getClass());
private final ErrorDecoder defaultErrorDecoder = new Default();
@Override
public Exception decode(String methodKey, Response response) {
if (response.status() >= 400 && response.status() <= 499) {
log.info("----------------- "+methodKey+" , "+response.status()+" , "+ response.reason());
return new RestApiException(99,99,"");
}
return defaultErrorDecoder.decode(methodKey, response);
}
}
@ControllerAdvice
public class GlobalControllerAdvice {
private final Logger log = LoggerFactory.getLogger(getClass());
@ExceptionHandler(RestApiException.class)
public ResponseEntity<RestApiException> handleException(RestApiException exception, HttpServletRequest req) {
log.error("Sending error to client ( "+req.getUserPrincipal().getName()+" ) \"{}\"", exception.getErrMsg());
return new ResponseEntity<RestApiException>(exception, exception.getStatus());
}
@ExceptionHandler(Throwable.class)
public ResponseEntity<RestApiException> handleException(Throwable throwable, HttpServletRequest req) {
RestApiException exception=new RestApiException(HttpStatus.INTERNAL_SERVER_ERROR, 100, 100,
throwable.getMessage());
return handleException(exception, req);
}
最佳答案
您无法使用 @ControllerAdvice
捕获 FeignClient 的异常。 .异常处理程序不会捕获由 feign 客户端、错误解码器生成的异常。
一个简单的解决方案是捕捉你的假调用,然后抛出你想要的异常。
try{
feignClient.method();
} catch(Exception ex){
//throw exceptions you want
throw new YourException();
}
@ControllerAdvice
public class GlobalControllerAdvice {
private final Logger log = LoggerFactory.getLogger(getClass());
@ExceptionHandler(YourException.class)
public ResponseEntity<RestApiException> handleException(RestApiException exception, HttpServletRequest req) {
//impl
}
}
关于spring-mvc - 如何捕获 FeignClient 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40362322/
我想使用 @FeignClient(url=...) 并使其直接转到给定的 url,而不是从功能区配置中获取主机。 我知道在 spring-cloud 中 feign 默认与ribbon 和 eure
我正在尝试了解 Spring Boot 和 Hystrix,但无法让后备方法发挥作用。我尝试了两种方法,@HystrixCommand 和 @FeignClient。我可以获取 @HystrixCom
我正在尝试在我的 Multi-Tenancy 应用程序中实现假客户端概念。我有两个微服务。在其中一项微服务中,我编写了 API 来从数据库获取数据。我的其他微服务中需要这些数据。为此,我使用假客户端概
我的微服务需要使用双向 ssl。每个微服务都是一个 Spring Boot 应用程序,注释为: @SpringBootApplication @EnableFeignClients @EnableDi
我使用 Spring Cloud Netflix 来构建我的微服务。 @FeignClient(name = "ms-cloud",configuration = MsCloudClientConfi
是否可以通过 MockRestServiceServer(restTemplate) 模拟响应 FeignClient?这个例子不起作用: Application.class @SpringBootA
我在根据文档尝试 feignclient 回退时遇到问题。 假设 myFeignClient 无法连接到 myFeign @FeignClient(name = "myFeign", fallback
服务器使用request.getInputStream()获取请求正文。 客户端代码: @FeignClient(name="composer-agent") public interface Com
Spring Boot FeignClient 捕获业务异常信息 因项目重构采用spring cloud,feign不可避免。目前spring cloud在国内还不是很成熟,所以踩坑是免不了的。最
我在自动连接来自另一个项目的假客户端时遇到问题。似乎没有生成和注入(inject) feign 客户端的实现。 这是我遇到的错误。 org.springframework.beans.factory.
我的应用程序中有一个 @FeignClient: @FeignClient(name="${mongo.service.id}", url="${mongo.service.url}") public
我尝试使用多个查询字符串参数调用 Google API。奇怪的是,我找不到办法做到这一点。 这是我的 FeignClient : @FeignClient(name="googleMatrix", u
Feign 默认扩展器转换参数: final class ToStringExpander implements Expander { @Override public String
我 try catch 从 FeignClient 连接的另一个微服务收到的异常。我制作了自定义的 ErrorDecoder,并且 public class CustomErrorDecoder im
拥有 Feign 客户端: @FeignClient(name = "storeClient", url = "${feign.url}") public interface StoreClient
我有一个@FeignClient接口(interface): @FeignClient(name="${some.service.id}", url="${some.service.url}") pu
这是我的 FeignClient: @FeignClient(name="${mongo.service.id}", url="${mongo.service.url}", configuration
如何在spring的@feignclient配置中设置自定义最大连接池大小, @FeignClient(name = "content-cms", configuration = ContentCms
当我的 Spring Boot 应用程序初始化时,我需要使用 @Component @FeignClient(name = "xxx") 进行 bean 注入(inject),但它总是抛出这样的异常:
我在自动连接另一个项目的 feign 客户端时遇到问题。貌似没有生成和注入(inject)feign客户端的实现。 这是我遇到的错误。 org.springframework.beans.factor
我是一名优秀的程序员,十分优秀!