我试图在Kotlin中为我的grpc客户端生成类,但它只生成一个类,我正在关注这个教程链接,我已经在我的ubuntu上安装了protoc,我将发布protoc-gen-grpc-kotlin.sh和我的proto。如果有人知道我哪里做错了,我会很感激的。
我的protoc-gen-grpc-kotlin.sh:
#!/usr/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
java -jar $DIR/protoc-gen-grpc-kotlin-1.3.0-jdk8.jar $@
我使用的是protoc-gen-grpc-kotlin-1.3.0-jdk8.jar插件
我的java版本是17,但我用版本8测试了它,它也不工作
My HelloService.proto:
syntax = "proto3";
package com.example.grpc;
option java_multiple_files = true;
//import "google/api/annotations.proto";
message HelloRequest {
string firstName = 1;
string lastName = 2;
}
message HelloResponse {
string greeting =1;
}
service HelloService {
rpc hello (HelloRequest) returns (HelloResponse) {}
// rpc hello(HelloRequest) returns (HelloResponse){
// option (google.api.http) = {
// post: "/demo/item"
// body: "*"
// };
// }
}
protoc命令:
protoc --kotlin_out=. --java_out=. --plugin=protoc-gen-kotlin=protoc-gen-grpc-kotlin.sh --proto_path=. HelloService.proto
通常会生成Java类,但仅创建一个Kotlin服务
谢谢!
1条答案
按热度按时间46scxncf1#
听起来你没有正确地编译或生成Java proto和gRPC类,这些类是使用gRPC forKotlin所必需的。您所展示的代码应该只生成一个Kotlin文件,这是正常的。
(If你正在为你的proto消息等寻找KotlinDSL,这是protobuf的一个单独功能,而不是gRPC。