【问题标题】:Quarkus Microprofile Rest Client, how to handle errors differentlyQuarkus Microprofile Rest Client,如何以不同方式处理错误
【发布时间】:2021-07-20 12:27:14
【问题描述】:

我有 2 个 Quarkus 服务,一个作为边缘服务,另一个作为下游服务,通信是通过 Quarkus MicroProfile Rest-API 客户端完成的。现在下游服务可能会返回某种带有 Json 主体的错误请求错误 (4xx) 状态。我现在的问题是 Edge 服务因此使用 WebApplicationException 引发 500 错误,有没有办法将相同的响应代码和正文从下游服务填充到 Edge 服务?

【问题讨论】:

  • 您的意思是忽略下游服务不返回 2XX 响应并使用有效负载这一事实?
  • 是的,就是这样。

标签: quarkus microprofile


【解决方案1】:

这个异常是由默认的rest客户端ResponseExceptionMapper抛出的。

您应该可以通过将以下属性添加到application.properties 来禁用它:

microprofile.rest.client.disable.default.mapper=false

请参阅 MicroProfile Rest Client 规范的 Default ResponxeExceptionMapperResponseExceptionMapper 部分。

【讨论】:

  • 除了“org.eclipse.microprofile.rest.client.disable.default.mapper=false”之外,我还尝试了上述属性,但没有成功!是 Quarkus 应用程序时是否有不同的命名?
  • 是的。您使用哪个版本的其余客户端?你能用复制者在github.com/quarkusio/quarkus/issues 中打开一个问题吗?
  • 作为临时解决方案,我使用了您建议的“ResponseExceptionMapper”,对于上述配置属性,一旦我准备好复制器,我将为其打开一张票,我正在使用 Quarkus“1.13.2 "。
猜你喜欢
  • 2021-01-20
  • 2022-01-08
  • 1970-01-01
  • 2021-12-17
  • 2015-09-24
  • 2021-07-18
  • 2020-02-15
  • 2021-05-21
  • 2022-12-29
相关资源
最近更新 更多