小编db8*_*b80的帖子

Java gRPC从ServerInterceptor获取服务名称

我正在使用 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);
        }
}
Run Code Online (Sandbox Code Playgroud)

请注意,我尝试过使用serverCall.getMethodDescriptor()但它返回原始服务的名称而不是(java)服务的真实名称。

它返回:

co.test.domain.transaction.TransactionService
Run Code Online (Sandbox Code Playgroud)

但我需要这个:

co.test.domain.transaction.TransactionNeoBasicImpl
Run Code Online (Sandbox Code Playgroud)

谢谢

java proto grpc

5
推荐指数
1
解决办法
2026
查看次数

Java、gRPC 和上下文传播

有谁有使用 java 中的 gRPC 在客户端(存根)和服务器之间传播io.grpc.Context的工作示例吗?

我的理解是这是不可能的,我必须使用元数据。我对么?

在网上我只找到了使用Header而不是Context 的示例。

谢谢!

java rpc proto grpc

5
推荐指数
1
解决办法
3332
查看次数

Java:4 字节到 32 位整数

我试图理解以下代码:

int omgezetteTijd =
((0xFF & rekenOmNaarTijdArray[0]) << 24) | ((0xFF & rekenOmNaarTijdArray[1]) << 16) |((0xFF & rekenOmNaarTijdArray[2]) << 8) | (0xFF & rekenOmNaarTijdArray[3]);
Run Code Online (Sandbox Code Playgroud)

我不明白的是为什么你用 OxFF 与它进行 AND 运算,你将一个 8 位值与 8 位像这样 (11111111),所以这应该给你相同的结果。

但是,当我不将它与 OxFF 进行 AND 运算时,我会得到负值吗?无法弄清楚为什么会这样?

java unsigned signed byte integer

1
推荐指数
1
解决办法
1303
查看次数

标签 统计

java ×3

grpc ×2

proto ×2

byte ×1

integer ×1

rpc ×1

signed ×1

unsigned ×1