Protobuf在java中使用例子

来源:互联网 发布:steam mac游戏排行 编辑:程序博客网 时间:2024/06/05 14:47

   今天在学习李林峰老师的Netty权威指南的时候,在第八章的protobuf开发环境的搭建上出了一点小问题,无论如何都报Missing input file 的错误,无法生成pojo对应的文件。最后借助别人的博客得以解决。

   配置的整个过程如下:

   1、在网上下载Protobuf的Windows版,这里有一个下载地址http://download.csdn.net/download/zhshchilss/8470577

         里面有一个protoc.exe是用来根据.proto文件生成相应的代码的,下面我们根据书中前面的一个pojo生成对应的文件

        

package com.netty.server.protobuf;import java.io.Serializable;public class SubscribeReq implements Serializable{/** *  */private static final long serialVersionUID = 1L;private int subReqId;private String userName;private String productName;private String phoneNumber;private String address;public SubscribeReq(){}public int getSubReqId() {return subReqId;}public void setSubReqId(int subReqId) {this.subReqId = subReqId;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getProductName() {return productName;}public void setProductName(String productName) {this.productName = productName;}public String getPhoneNumber() {return phoneNumber;}public void setPhoneNumber(String phoneNumber) {this.phoneNumber = phoneNumber;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "SubscrineReq [subReqId=" + subReqId + ", userName=" + userName + ", productName=" + productName+ ", phoneNumber=" + phoneNumber + ", address=" + address + "]";}}
  2、

   首先把这个protoc.exe放在项目中的一个新建目录下,然后新建一个proto文件SubscribeReq.proto

option java_package="com.netty.server.protobuf"; option java_outer_classname="SubscribeReqProto";message SubscribeReq{  required int32 subReqId=1;required string userName=2;required string productName=3;required string phoneNumber=4;required string address=5;} 

3、打开命令行工具,进入这个目录,按照书上运行我发现老是报错,在一番搜索后发现改为如下便可以运行


最后成功生成了相应的文件


0 0
原创粉丝点击