GRPC客户端拦截异常Java

时间:2017-05-09 14:17:16

标签: grpc grpc-java

我试图拦截GRPC存根引发的异常io.grpc.StatusRuntimeException,并将它们转换为RESt异常。我需要实现ClientInterceptor不确定如何?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

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

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

相关问题