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 格式不同的主要内容,如果未能解决你的问题,请参考以下文章

JSON序列化时为jsonrpc4j null

msf的rpc和json-rpc,我该选择哪个?

msf的rpc和json-rpc,我该选择哪个?

.NET 开源项目 StreamJsonRpc 介绍[上篇]

dubbo协议层 jsonrpc协议迁移到http协议

Flask-JSOONRPC