Я использую gRPC, и мне нужно получить имя службы запроса от ServerInterceptor, но, похоже, это невозможно.
В основном из реализации ServerInterceptor мне нужно знать имя ServiceGrpc (в виде строки), которое будет вызываться.
public class PermissionInterceptor implements ServerInterceptor {
@Override
public <ReqT, RespT> ServerCall.Listener<ReqT> interceptCall(
ServerCall<ReqT, RespT> serverCall, Metadata metadata, ServerCallHandler<ReqT, RespT> handler
) {
// here I need the name of RPC service that has been requested
return handler.startCall(serverCall, metadata);
}
}
Обратите внимание, что я пытался использовать serverCall.getMethodDescriptor(), но он возвращает имя службы proto, а не настоящее имя службы ( Ява) сервис.
Он возвращает:
co.test.domain.transaction.TransactionService
Но мне нужно это:
co.test.domain.transaction.TransactionNeoBasicImpl
Спасибо