【问题标题】:GRPC Client intercepting exceptions JavaGRPC Client 拦截 Java 异常
【发布时间】:2017-05-09 14:17:16
【问题描述】:

我试图拦截 GRPC 存根抛出的异常 io.grpc.StatusRuntimeException,并将它们转换为 REST 异常。我需要实现 ClientInterceptor 不知道如何实现?

【问题讨论】:

    标签: grpc grpc-java


    【解决方案1】:

    你不能在拦截器中。 gRPC 存根和核心库会将异常重新映射到 StatusRuntimeException。拦截器旨在让您修改请求和响应,但仍通过 gRPC API 显示。

    您可以编写自己的存根包装器(可能使用 AbstractStub)来重新映射这些异常。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,但无法完成,因为 onMessage 方法会将任何可抛出的对象捕获到 StatusRuntimException 中,并且状态将被取消。

      https://github.com/grpc/grpc-java/issues/3434

      所以在我的例子中,服务器和客户端应该使用某种标准,比如代码(HTTP CODE)和消息。所以在服务层,检查响应代码是否!= 200 然后从服务器的代码和消息中抛出你的异常

      我的帖子也被Carl Mastrangelo回复了:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-03
        • 1970-01-01
        • 1970-01-01
        • 2011-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-11
        相关资源
        最近更新 更多