Jsonrpc4j 和 go 的 rpc/jsonrpc 之间的 JSONRPC 格式不同
Posted
技术标签:
【中文标题】Jsonrpc4j 和 go 的 rpc/jsonrpc 之间的 JSONRPC 格式不同【英文标题】:JSONRPC format different between Jsonrpc4j and go's rpc/jsonrpc 【发布时间】:2015-11-05 10:16:13 【问题描述】:当我尝试使用 net/jsonrpc 包使用 jsonrpc4j 构建服务器和 Java 客户端时遇到问题
问题是jsonrpc4j发生错误时,golang的方法会返回错误和编码到json。
我在客户端得到了这个 json 对象
"id": -6028374044949000, "result": null, "error": "一些错误返回信息"
这个对象转换在 java 的 json4j 中失败。
http://www.jsonrpc.org/specification#error_object
查看jsonrpc页面后,说error字段必须是json对象,字段为[code, message, date],golang jsonrpc包不符合要求。
所以我很困惑如何解决这个问题。 更改 jsonrpc 库, 只需将rpc方式替换为thrift/gRpc, 避免返回错误但在回复中发送错误并让Java检查响应, 或者只是编辑了 json4j 或 golang 的源代码(我对这个选项很可怕)
感谢收看。
【问题讨论】:
em...但它匹配http://json-rpc.org/wiki/specification
2.0新增错误对象详情
所以我认为net/rpc/jsonrpc
低于 1.0,但没有记录。
【参考方案1】:
如果你需要对 Go 的 JSON-RPC 2.0 支持,你可以试试https://github.com/powerman/rpc-codec
【讨论】:
谢谢,我不是 http 和 thirft。以上是关于Jsonrpc4j 和 go 的 rpc/jsonrpc 之间的 JSONRPC 格式不同的主要内容,如果未能解决你的问题,请参考以下文章