Ruby生成的grpcclass服务名冲突
Ruby generated grpc class service name conflict
我有一个奇怪的情况,消息名称与我的原型定义中生成的 class 相同,即 Service
例如:
原型文件
service Dummy {
rpc Register(RegisterServiceRequest) returns Service {}
}
message Service {
string name = 1;
}
当我生成 grpc 服务时,它变成了
pb.rb 文件
module ...
module ...
class Service
include GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'some.Dummy'
rpc :Register, RegisterServiceRequest, Service
end
Stub = Service.rpc_stub_class
end
end
当我尝试 运行 时,它低于 argumenterror
/Library/Ruby/Gems/2.6.0/gems/grpc-1.23.0-universal-darwin/src/ruby/lib/grpc/generic/service.rb:126:in assert_can_marshal
/Library/Ruby/Gems/2.6.0/gems/grpc-1.23.0-universal-darwin/src/ruby/lib/grpc/generic/service.rb:94:in`rpc'
如何解决这个问题?生成服务 pb.rb 文件
时是否可以覆盖 class Service
的名称
冲突在这里:
# ⇓⇓⇓⇓⇓⇓⇓
service Dummy {
...
# ⇓⇓⇓⇓⇓⇓⇓
message Service
国内有GRPCclassService
。重命名你的使用有点像 message MessageService
.
我有一个奇怪的情况,消息名称与我的原型定义中生成的 class 相同,即 Service
例如: 原型文件
service Dummy {
rpc Register(RegisterServiceRequest) returns Service {}
}
message Service {
string name = 1;
}
当我生成 grpc 服务时,它变成了
pb.rb 文件
module ...
module ...
class Service
include GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'some.Dummy'
rpc :Register, RegisterServiceRequest, Service
end
Stub = Service.rpc_stub_class
end
end
当我尝试 运行 时,它低于 argumenterror
/Library/Ruby/Gems/2.6.0/gems/grpc-1.23.0-universal-darwin/src/ruby/lib/grpc/generic/service.rb:126:in assert_can_marshal
/Library/Ruby/Gems/2.6.0/gems/grpc-1.23.0-universal-darwin/src/ruby/lib/grpc/generic/service.rb:94:in`rpc'
如何解决这个问题?生成服务 pb.rb 文件
时是否可以覆盖class Service
的名称
冲突在这里:
# ⇓⇓⇓⇓⇓⇓⇓
service Dummy {
...
# ⇓⇓⇓⇓⇓⇓⇓
message Service
国内有GRPCclassService
。重命名你的使用有点像 message MessageService
.