#java #spring-boot #protocol-buffers #grpc #grpc-java
Вопрос:
У меня есть клиент C , вызывающий мой сервер Java gRPC, и при попытке вызова метода возникает следующее исключение, четко указанное в моем файле прототипа.
org.lognet.springboot.grpc.GRpcServicesRegistry#descriptorToServiceMethod
не сопоставляет методы RPC формы rpc_method_name
(змеиный регистр) с сгенерированными методами java формы rpcMethodName
(верблюжий регистр).
Это приводит к появлению следующей ошибки во время выполнения:
org.lognet.springboot.grpc.security.SecurityInterceptor$1: Authentication failure. at org.lognet.springboot.grpc.security.SecurityInterceptor.interceptCall(SecurityInterceptor.java:147) ~[grpc-spring-boot-starter-4.5.10.jar:na] at io.grpc.ServerInterceptors$InterceptCallHandler.startCall(ServerInterceptors.java:244) ~[grpc-api-1.42.0.jar:1.42.0] at org.lognet.springboot.grpc.recovery.GRpcExceptionHandlerInterceptor.interceptCall(GRpcExceptionHandlerInterceptor.java:59) ~[grpc-spring-boot-starter-4.5.10.jar:na] at io.grpc.ServerInterceptors$InterceptCallHandler.startCall(ServerInterceptors.java:244) ~[grpc-api-1.42.0.jar:1.42.0] at io.grpc.internal.ServerImpl$ServerTransportListenerImpl.startWrappedCall(ServerImpl.java:703) ~[grpc-core-1.42.0.jar:1.42.0] at io.grpc.internal.ServerImpl$ServerTransportListenerImpl.access$2200(ServerImpl.java:406) ~[grpc-core-1.42.0.jar:1.42.0] at io.grpc.internal.ServerImpl$ServerTransportListenerImpl$1HandleServerCall.runInternal(ServerImpl.java:615) ~[grpc-core-1.42.0.jar:1.42.0] at io.grpc.internal.ServerImpl$ServerTransportListenerImpl$1HandleServerCall.runInContext(ServerImpl.java:603) ~[grpc-core-1.42.0.jar:1.42.0] at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) ~[grpc-core-1.42.0.jar:1.42.0] at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133) ~[grpc-core-1.42.0.jar:1.42.0] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] at java.base/java.lang.Thread.run(Thread.java:831) ~[na:na] Caused by: java.lang.IllegalStateException: Method ***rpc_method_name*** not found in service ***org.me.MyGrpcService*** at org.lognet.springboot.grpc.GRpcServicesRegistry.descriptorToServiceMethod(GRpcServicesRegistry.java:186) ~[grpc-spring-boot-starter-4.5.10.jar:na] at org.springframework.util.function.SingletonSupplier.get(SingletonSupplier.java:97) ~[spring-core-5.3.7.jar:5.3.7] at org.lognet.springboot.grpc.GRpcServicesRegistry.getGrpServiceMethod(GRpcServicesRegistry.java:120) ~[grpc-spring-boot-starter-4.5.10.jar:na] at org.lognet.springboot.grpc.security.SecurityInterceptor.setupGRpcSecurityContext(SecurityInterceptor.java:261) ~[grpc-spring-boot-starter-4.5.10.jar:na] at org.lognet.springboot.grpc.security.SecurityInterceptor.interceptCall(SecurityInterceptor.java:143) ~[grpc-spring-boot-starter-4.5.10.jar:na] ... 12 common frames omitted
Это ошибка с api, или мне не хватает какой-то конфигурации/зависимости?
Комментарии:
1. У меня есть попытка создать службу и метод snake case, это правильный случай змеи. Пожалуйста, убедитесь, что ваш код сгенерирован из одного и того же прото-файла и что версия зависимостей одинакова.
2. @HelloWood Я использовал плагин lognet grpc gradle для обработки версий generation / grpc