Ответ на вызов gRPC в перехватчике сервера

Я хочу подтвердить вызов и, возможно, ответить с ошибкой в ​​перехватчике сервера. Есть способ сделать это? Если да, то как я могу этого добиться?


person Grzegorz Żur    schedule 11.07.2016    source источник


Ответы (1)


Просто отвечайте на RPC от перехватчика, возможно, вызывая close(), и не вызывайте next. Вам все равно нужно будет вернуть слушателя, но это может быть просто new ServerCall.Listener() {}.

person Eric Anderson    schedule 11.07.2016
comment
Спасибо! Я вижу, что в версии 0.15.x gRPC я также могу вернуть null. github.com/grpc/grpc-java/issues/1665 - person Grzegorz Żur; 13.07.2016
comment
Если вы можете вернуть null, это ошибка. Проблема, с которой вы связались, не подразумевала, что вы можете вернуть null. Из кода похоже, что возврат null будет NPE, хотя, возможно, есть ошибка, о которой не сообщается. - person Eric Anderson; 15.07.2016
comment
@EricAnderson Может interceptCall действовать асинхронно? - person anhldbk; 06.11.2017
comment
@anhldbk, да, interceptCall может действовать асинхронно, хотя это раздражает, потому что ему, вероятно, нужно буферизовать вызовы других методов до завершения асинхронной операции. - person Eric Anderson; 06.11.2017