我的springboot项目中如何调用grpc api?

问题描述 投票:0回答:1

我正在尝试将其他人用 Go 编写的 gRPC 接口集成到我的 Spring Boot 项目中。据我了解,该过程涉及使用 protoc 将 .proto 文件转换为 .java 文件,然后将其复制到 Java 项目中。之后,我尝试创建一个客户端并使用以下代码进行调用:

public class MyGrpcClient {
    private final MyServiceGrpc.MyServiceBlockingStub blockingStub;

    public MyGrpcClient() {
        ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 50051)
                .usePlaintext()
                .build();

        blockingStub = MyServiceGrpc.newBlockingStub(channel);
    }

    public MyResponse callRemoteService(MyRequest request) {
        return blockingStub.myMethod(request);
    }
}

但是,我注意到 protoc 生成的文件不包含类似于 MyServiceGrpc.MyServiceBlockingStub 类的任何内容。我想知道问题可能出在哪里以及可能导致此问题的原因。

我已经按照必要的步骤使用 protoc 生成 .java 文件,并且我已经检查了我的 Maven/Gradle 构建文件中是否包含必要的依赖项。我不确定为什么生成的文件中不存在 MyServiceGrpc.MyServiceBlockingStub 类。

任何有关如何排查和解决此问题的见解或建议将不胜感激。

提前感谢您的帮助!

spring-boot grpc
1个回答
0
投票

您需要添加正确的成绩任务来解释gradle如何生成类。看这里作为例子:

© www.soinside.com 2019 - 2024. All rights reserved.