使用 Protocol Buffer 3 生成 gRPC Java 代码方法

由于本人测试都是Java,这里只做java 介绍,其他语言类似!

关于gRPC 多余的客套话,就不在这里说了,具体可以自行去官方网站查阅资料和介绍;

1.下载 protocol buffer 2/3 

    文档介绍:https://developers.google.com/protocol-buffers/docs/proto3

    下载地址:https://repo1.maven.org/maven2/com/google/protobuf/protoc/3.0.2/

    下载完成后,添加 window 环境变量(由于我本地有两个版本,故我命名为protoc2/protoc3)添加完成后,进行验证。如下图:

使用 Protocol Buffer 3 生成 gRPC Java 代码方法_第1张图片

    如果出现于作者同样的图,说明安装成功!

2.在编译的 gRPC 的时候 ,protocol buffer 需要将 protoc-gen-grpc-java 作为插件来生成代码,

    文档介绍:http://www.grpc.io/docs/quickstart/java.html

    下载地址:https://repo1.maven.org/maven2/io/grpc/protoc-gen-grpc-java/1.0.1/

    下载完成后,使用 Protocol Buffer 3 生成 gRPC Java 代码方法_第2张图片同样的添加到 winddos环境变量中。

 

3.编写 .proto 文件 。命名为 : grpc-helloworld.proto .文件内容如下:

    

syntax = "proto3";

option java_generic_services = true;
option java_multiple_files = true;
option java_package = "com.hservice.grpc.schema";
option java_outer_classname = "HelloWorldProto";

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}

首先生成Proto 文件

115636_VfOp_571282.png

再执行生成命令:( >>>   protoc3 --plugin=protoc-gen-grpc-java=D:/sysEnv/protoc-gen-grpc-java.exe --grpc-java_out=java --proto_path=proto proto/g
rpc-helloworld.proto) 生成gRPC文件

    114832_Arr7_571282.png

    如果在这一步的时候,执行失败,请注意路径参数的配置。

4.生成后,会在com.hservice.grpc.schema 包下生存 GreeterGrpc.java 文件。我的生成后java 代码如下:

    使用 Protocol Buffer 3 生成 gRPC Java 代码方法_第3张图片

 

5. 继承并覆盖 gRPC 中的 rpc 方法

   

/**
 * @author Rayn on 2016/9/25.
 * @email [email protected].
 */
public class GrpcGreeterImpl extends GreeterGrpc.GreeterImplBase {

    /**
     * 
     * Sends a greeting
     * 
* * @param request * @param responseObserver */ @Override public void sayHello(HelloRequest request, StreamObserver responseObserver) { HelloReply reply = HelloReply.newBuilder().setMessage("Hello " + request.getName()).build(); responseObserver.onNext(reply); responseObserver.onCompleted(); } }

至此,已经完成相应的工作。

 

注:本人环境为 win7 64 位, protobuf 3, grpc 插件为1.0.1, 如果有什么问题,可以交流!

转载于:https://my.oschina.net/Rayn/blog/751316

你可能感兴趣的:(使用 Protocol Buffer 3 生成 gRPC Java 代码方法)