Javaクラスを作成するための単純なprotoファイルがあります
syntax = "proto3";
option java_package = "some.project.grpc";
option java_multiple_files = true;
message PingRequest { }
message PingResponse { }
service MyServer {
rpc Ping(PingRequest) returns (PingResponse);
}
gradle と google protobuf プラグイン ( https://github.com/google/protobuf-gradle-plugin ) を使用して、クラスを作成します
gradle generateProto
生成された には、 2 つのコンストラクターを持つMyServerGrpc
内部クラスがあります。MyServerBlockingStub
private MyServerBlockingStub(io.grpc.Channel channel) { ... }
private MyServerBlockingStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { ... }
MyServerGrpc
クラスは最初のものを公開しますが、2番目のものは公開しnewBlockingStub(io.grpc.Channel channel)
ません-これは必要です。
このように、タイムアウトなどの呼び出しオプションを設定できません。生成されたファイルを簡単に操作して、必要なコンストラクターにアクセスできるようにすることはできますが、これらの変更は次世代では失われるため、実際にはオプションではありません。
とても簡単な修正のように思えるので、私は考えていました:
- このコンストラクターを公開するオプションがありませんか?
CallOptions
私がまだ見つけていない別の場所にオブジェクトを設定する意図はありますか?