eclipse-vertx / vertx-grpc

Development of the gRPC component for Eclipse Vert.x
Eclipse Public License 2.0
43 stars 23 forks source link

ProtoReflectionService "server" is null exception #22

Open freynder opened 2 years ago

freynder commented 2 years ago

Version

4.3.5

Context

Encountering exception when querying grpc reflection service

Testing with grpcurl: grpcurl -plaintext localhost:8080list

Exception: 15:01:35.948 [vert.x-eventloop-thread-2] ERROR io.vertx.core.impl.ContextBase - Unhandled exception java.lang.NullPointerException: Cannot invoke "io.grpc.Server.getImmutableServices()" because "server" is null at io.grpc.protobuf.services.ProtoReflectionService.getRefreshedIndex(ProtoReflectionService.java:93) at io.grpc.protobuf.services.ProtoReflectionService.serverReflectionInfo(ProtoReflectionService.java:134) at io.grpc.reflection.v1alpha.ServerReflectionGrpc$MethodHandlers.invoke(ServerReflectionGrpc.java:208) at io.grpc.stub.ServerCalls$StreamingServerCallHandler.startCall(ServerCalls.java:235) at io.vertx.grpc.server.impl.GrpcServiceBridgeImpl.lambda$bind$2(GrpcServiceBridgeImpl.java:62) at io.vertx.grpc.server.impl.GrpcServerImpl$MethodCallHandler.handle(GrpcServerImpl.java:95) at io.vertx.grpc.server.impl.GrpcServerImpl.handle(GrpcServerImpl.java:62)

val grpcServer: GrpcServer = GrpcServer.server(vertx)
val mainBridge = GrpcServiceBridge.bridge(MainBridge())
val reflectionBridge = GrpcServiceBridge.bridge(ProtoReflectionService.newInstance())
mainBridge.bind(grpcServer)
reflectionBridge.bind(grpcServer)

httpServer = vertx
  .createHttpServer(httpOptions)
  .requestHandler(grpcServer)
  //.requestHandler(router)
  .listen(appConfig.webPort).await()
tsegismont commented 2 years ago

Thank you for reporting. This is not supported by vertx-grpc. As a workaround, you can start grpcurl by providing the proto files.

yizmailovSF commented 1 year ago

@tsegismont Hey, is there a plan to support ProtoReflectionService in the near future?

vietj commented 1 year ago

we should open a feature request for this and open it to contributions