gateway统一异常处理问题

来源:1-1 本课导学

qq_执着丶_0

2021-04-17

gateway异常分为内部的异常和外部服务返回的异常信息,我重写了gateway的异常处理方法

DefaultErrorWebExceptionHandler getErrorAttributes

在这里面返回统一结果集。后端服务我也做了统一结果集处理,如果后端如果出现了异常,我也会把结果集封装好返回去,但是因为状态码不是成功状态吗,gateway的异常处理机制会把我后端返回的结果当做异常处理异常,然后给我重新处理一下,我就没法获取到后端服务返回的异常提示信息了

后端服务返回401状态的结果:

http://img.mukewang.com/climg/607a6779092ced5f04740190.jpg

gateway返回的消息

http://img.mukewang.com/climg/607a67be090aa6aa05250139.jpg

如何让gateway直接返回后端服务的接口呢?

后端接口的状态码必须设置成成功状态的吗?

写回答

1回答

大目

2021-04-21

您好,这个问题有两个解决方法:

  1. 让你的后端服务返回的http响应码总是200,这样就不会触发spring cloud gateway的异常处理

  2. 重写spring cloud gateway的异常处理逻辑,改成直接透传后端错误消息即可。

0
0

Spring Cloud Alibaba微服务从入门到进阶

面向未来微服务:熟练掌握Spring Cloud Alibaba

3085 学习 · 1324 问题

查看课程