基于开源项目:https://github.com/triton-inference-server/client/tree/main/src/grpc_generated/java
要实现grpc协议的通信,把grpc_service.proto进行映射
grpc_service.proto中的部分内容:
package inference;
//@@.. cpp:namespace:: inference
import "model_config.proto"
文件中import其他的proto文件,在IDE中用protobuf插件没法直接生成,一直提示如下信息:
[INFO]
[INFO] --- protobuf-maven-plugin:0.6.1:compile (default-cli) @ grpc-java-demo ---
[INFO] Compiling 3 proto file(s) to D:\java\workspace\grpc-java-demo\target\generated-sources\protobuf\java
[ERROR] PROTOC FAILED: model_config.proto: File not found.
llm/grpc_service.proto:33:1: Import "model_config.proto" was not found or had errors.
llm/grpc_service.proto:875:3: "ModelConfig" is not defined.
[ERROR] D:\java\workspace\grpc-java-demo\src\main\proto\llm\grpc_service.proto [0:0]: model_config.proto: File not found.
llm/grpc_service.proto:33:1: Import "model_config.proto" was not found or had errors.
llm/grpc_service.proto:875:3: "ModelConfig" is not defined.
[ERROR] D:\java\workspace\grpc-java-demo\src\main\proto\llm\health.proto [0:0]: model_config.proto: File not found.
llm/grpc_service.proto:33:1: Import "model_config.proto" was not found or had errors.
llm/grpc_service.proto:875:3: "ModelConfig" is not defined.
[ERROR] D:\java\workspace\grpc-java-demo\src\main\proto\llm\model_config.proto [0:0]: model_config.proto: File not found.
llm/grpc_service.proto:33:1: Import "model_config.proto" was not found or had errors.
llm/grpc_service.proto:875:3: "ModelConfig" is not defined.
通过cmd命令能运行但是没法生成最终需要的 GRPCInferenceServiceGrpc.java
于是尝试在linux环境去生成
命令:
protoc --plugin=protoc-gen-grpc-java=xxx/protoc-gen-grpc-java-1.0.3-linux-x86_64.exe --java_out=. --grpc-java_out=. --proto_path=. grpc_service.proto
xxx换成自己服务器上protoc-gen-grpc-java-1.0.3-linux-x86_64.exe的路径
执行成功后查看生成的Java类
如果是windows环境下,生成Java类和xxxGrpc.java命令:
protoc --proto_path=. --java_out=. --plugin=protoc-gen-grpc-java=D:\java\javaRepository\io\grpc\protoc-gen-grpc-java\1.53.0\protoc-gen-grpc-java-1.53.0-windows-x86_64.exe --grpc-java_out=. grpc_service.proto
关于grpc协议Java代码生成和学习的部分参考文章链接:
gRPC 官方文档中文版_V1.0 (oschina.net)
java/go grpc 生成 service - ifnk - 博客园 (cnblogs.com)
java使用protobuf-maven-plugin的插件编译proto文件_程序猿CKeen的博客-优快云博客
学点儿gRPC-从入门到放弃 | 朝·闻·道 (wuwenliang.net)
芋道 Spring Boot gRPC 入门 | 芋道源码 —— 纯源码解析博客 (iocoder.cn)
gRPC-Java:构建一个使用Java语言的gRPC工程_protoc-gen-grpc-java_文晓武的博客-优快云博客
java 生成grpc调用service_java grpc生成文件_了迹奇有没的博客-优快云博客
Protobuf语言指南——.proto文件语法详解-优快云博客
本文讲述了在使用grpc协议时遇到的问题,如protobuf插件编译错误,以及如何在Windows和Linux环境下通过protoc命令行生成Java代码,包括不同平台的插件路径设置。还提供了相关资源链接供读者参考。
1105





