在输出文件中找不到protobuf服务

cha*_*eng 5 java protocol-buffers

我在proto文件中定义了一个rpc服务,但我在输出java文件中找不到任何接口或方法.

$ protoc -v 
libprotoc 2.5.0
Run Code Online (Sandbox Code Playgroud)

原型文件:

service EchoService {
    rpc Echo (Person) returns (Person);
}
Run Code Online (Sandbox Code Playgroud)

编译脚本:

#!/bin/bash

for file in `find src/main/proto -name "*.proto"`; do
    protoc --proto_path=src/main/proto --java_out=src/main/java/ $file
done
Run Code Online (Sandbox Code Playgroud)

Ken*_*rda 6

请参阅java_generic_services选项.您需要将其添加到您的.proto文件中:

option java_generic_services = true;
Run Code Online (Sandbox Code Playgroud)

但是,这只有在您使用某些RPC实现(或想要编写自己的实现)时才有用.该选项默认为false,因为预计大多数RPC实现都希望编写自定义代码生成器而不是使用"通用"生成的服务.