当调用别人的GRPC服务时,我们要在自己项目中,生成相对应语言的代码,然后进行调用!

然而有一些细节问题,会暴露:io.grpc.StatusRuntimeException: UNIMPLEMENTED: Service is unimplemented.

解决:

1. 如果被调用方的服务,proto文件上方定义了package,调用方不可以更改此路径!!!

eg. 我用java调用kotlin的服务,服务提供方 proto文件定义:

调用方:

同时,要注意service 名字一定要保持一致!!!

2.  如果proto没有定义package的值,则正常只需要留意service名字即可,java_package可以根据项目需求进行定义:

eg. 服务提供方proto文件:

 在服务调用方proto文件:

同时,需要注意proto文件的名字,总之,在调用他人服务时,尽量不更改他人的proto文件,直接生成相关grpc代码,进行方法调用即可。

更多推荐