rpc error: code = Unimplemented desc =
grpc 版本
在 go 语言场景下使用 grpc,编译 ok,运行的时候报错。
grpc 版本:1.40.0
go version: go1.16.10 linux/amd64
运行报错提示
"rpc error: code = Unimplemented desc ="
运行错误截图如下:
结论先行
引起上述错误的主要原因是自定义的 proto 文件中 package
的名字和代码中的 import
中的 package 名称不一致才导致的问题。
因此检查自定义的 proto 文件以及代码中引用(import)的文件名称,将二者改为一致即可。
后续的内容只是简单记录下发现错误过程而已。感兴趣的可以继续阅读。
错误调查
查看 proto 文件
package mypai;
option go_package = "./;mypai";service mygrpc{rpc MyTestGrpcFunction(EmptyReq) returns (MyActiveTable) {}
}message EmptyReq{} message MyActiveTable
{repeated string idList = 1;
}
grpcClient 部分代码
报错的位置是第 27 行
处,其他部分代码截图如下:
3 import (4 "fmt"5 myapi "mycodes/egrpcProtoc/test"6 "time"7 "errors"8 )...........25 func TestMyTestGrpcFunction(req *myapi.EmptyReq) (resp *myapi.MyActiveTable) {26 if resp, err = grpcClient.MyTestGrpcFunction(req); err != nil {27 log.Logger.Error(err)28 }29 } else {30 log.Logger.Error(err)31 }32 return resp33 }
使用 grpc 工具生成的 *.pb.go 部分代码
3 package mypai...........72 type GrpcClient interface {73 MyTestGrpcFunction(in *EmptyRequest, opts ...grpc.CallOption) (*MyActiveTable, error)74 }...........78 func (c *grpcClient ) MyTestGrpcFunction(in *EmptyRequest, opts ...grpc.CallOption) (*MyActiveTable, error) {79 out := new(MyActiveTable)80 err := c.cc.Invoke(ctx, "/mypai_communication.myapi/MyTestGrpcFunction", in, out, opts...)81 if err != nil {82 return nil, err83 }84 return out, nil85 }...........112 type GrpcClient interface {113 MyTestGrpcFunction(*EmptyRequest) (*MyActiveTable, error)
114 }...........123 func (*UnimplementedMypaiServer) MyTestGrpcFunction(*EmptyRequest) (*MyActiveTable, error) {124 return nil, status.Errorf(codes.Unimplemented, "method MyTestGrpcFunctionnot implemented")
125 }
发现问题
截至此处,基本可以上可以确定代码问题所在,因为明显在自定义的 proto
中是定义有 MyTestGrpcFunction
接口方法的,但是运行却报错 Unimplemented
,再次 check 代码发现是 package 名称,在自定义的 proto
中是 mypai ,但是在代码使用中却用的是 myapi ,可以很明显的看出是不一样的。
参考
Error handling
rpc error: code = Unimplemented desc =相关推荐
- docker删除es数据_docker问题:quot;rpc error: code = 2 desc = containerd: container ...quot;
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:原创文章分类汇总及配套源码,涉及Java.Docker.K8S.Devops等 问题突现 在执 ...
- docker问题备忘:“rpc error: code = 2 desc = containerd: container not found“
问题 docker问题备忘:"rpc error: code = 2 desc = containerd: container not found" 特此记录下 解决方案 内存不足 ...
- docker问题备忘:rpc error: code = 2 desc = containerd: container not found
在执行docker exec命令时,报错信息为:rpc error: code = 2 desc = containerd: container not found 先抛出结果 如果您是通过搜索错误信 ...
- ERRO[0000] unable to determine runtime API version: rpc error: code = Unavailable desc = connection
遇到错误: ERRO[0000] unable to determine runtime API version: rpc error: code = Unavailable desc = conne ...
- ERRO[0000] unable to determine image API version: rpc error: code = Unavailable.......错误解决
ERRO[0000] unable to determine image API version: rpc error: code = Unavailable desc = connection er ...
- 电脑无限重启rpc服务器不可用,StarUML启动时候出现System Error. Code:1722. RPC服务器不可用.错误的解决办法...
评论 # re: StarUML启动时候出现"System Error. Code:1722. RPC服务器不可用."错误的解决办法 2010-01-30 11:47 s love ...
- 海马玩模拟器启动失败,start machine failed! error code = 3和error code=21
ssdwin7安装visual studio 2019,另外打开网页,终于在最后时刻死机-- 然后ghost重装,几次插拔然后ssd不见了-- 重新买ssd,然后重装. --这些都是前戏-- 今天打开 ...
- 解决 win10 pycurl安装出错 Command python setup.py egg_info failed with error code 10 编译安装包 安装万金油...
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/yexiaohhjk/article/d ...
- Job for docker.service failed because the control process exited with error code. See systemctl sta
docker启动的时候出现这个错误: Job for docker.service failed because the control process exitedwith error code. ...
- 【错误归纳】E: Sub-process /usr/bin/dpkg returned an error code (1)子进程 已安装 post-installation 脚本 返回了错误号 1
问题描述 我在使用apt-get install 安装某个程序的时候出现了下面的错误提示: 正在设置 anydesk (5.1.1) ...System start/stop links for /e ...
最新文章
- Python3中的成员保护和访问限制
- [java]OutOfMemoryError 原因及解决办法
- 第2章 基本的TCP套接字
- 震惊!Canvas原来还能这么搞!代码画一个时钟出来
- 从源码角度看Android系统SystemServer进程启动过程
- Nacos配置管理模型
- Nim 游戏 、⽯头游戏1、石头游戏2
- 仓库移动_移动式仓库、检修作业平台、储油柜胶囊破裂检测装置……这场科技秀超燃!...
- Linux 系统管理员工具集
- python issuperset_Superset的各种疑难解答
- spring boot之security
- C#路径中获取文件全路径、目录、扩展名、文件名称
- Ubuntu22.04 Python 深度学习环境配置记录
- 大物实验-直接测量量不确定度计算器 开发备忘录
- 基于matlab的声波分析研究,基于MATLAB的声音信号分析与处理(共13页)
- vissim交通仿真实验(1)--仿真基础
- 分手后怎样才能让前任重回你身边
- 大数据———Flume与Kafka整合
- 面向对象——依赖倒转原则和里氏代换原则
- python青蛙跳台阶_Python之青蛙跳台阶