为了账号安全,请及时绑定邮箱和手机立即绑定

grpc:服务器无法编码响应:rpc错误:代码=内部desc = grpc:编组时出错:

grpc:服务器无法编码响应:rpc错误:代码=内部desc = grpc:编组时出错:

Go
米脂 2023-03-21 14:25:25
理想情况下,以下 RPC 应该接收消息并编组为 JSON。但是,遇到以下错误:ERROR: 2018/08/12 13:43:07 grpc: server failed to encode response:  rpc error: code = Internal desc = grpc: error while marshaling: proto: Marshal called with nilfunc (s *beaconServer) Transmit(ctx context.Context, batch *pb.Batch) (*pb.Empty, error) {    var empty *pb.Empty    var messageJSON bytes.Buffer    marshaler := &jsonpb.Marshaler{        OrigName: true,    }    err := marshaler.Marshal(&messageJSON, batch)    if err != nil {        return empty, err    }    log.Println(string(messageJSON.Bytes()))    return empty, nil}.. 回报2018/08/12 14:24:09 beacon.go:34: {"stream_id":"abc11","event_type":"e","events":[{"file_path":"/tmp/python.py","location":"256","count":"30"},{"file_path":"/tmp/temp.py","location":"253","count":"305"}],"start_time":"2038-01-19 03:14:07","end_time":"2038-01-19 03:14:27"}ERROR: 2018/08/12 14:24:09 grpc: server failed to encode response:  rpc error: code = Internal desc = grpc: error while marshaling: proto: Marshal called with nil
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

该错误可能不是由此代码块中的编组器引起的

当您这样做时,var empty *pb.Empty您正在创建一个未初始化的变量*pb.Empty,即nil. 很可能是上游试图整理它的东西empty导致了错误。

如果你想初始化为空,那么你应该做return new(pb.Empty), nil


查看完整回答
反对 回复 2023-03-21
  • 1 回答
  • 0 关注
  • 862 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信