JacksonDBDecoder - 来自 MongoDB 的服务器错误 - mongojack 2.3.0

JacksonDBDecoder - Server errors from MongoDB - mongojack 2.3.0

当我的应用程序收到来自 MongoDB 服务器的错误时,我遇到了问题,例如:

假设我在 MongoDB 中进行了查找,但 MongoDB 服务器的响应由于超时而出错:

{ $错误:"MongoTimeout due to...bla bla bla..." 代码:50 }

JacksonDBDecoder 期望我的 Java 类型,例如我的 class "Stuff"(包含多个字段,如 "price" 和 "weight"),但是当它接收到前面的JSON,然后没有任何与"price"和"weight"匹配的字段,所以结果为空:{}

空 JSON 将由 mongo-java-驱动程序 classes 处理(恰好 com.mongodb.QueryResultIterator.throwOnQueryFailure)并且它永远不会记录原始信息 "MongoTimeout due to...bla bla bla..." 和 50,因为解码器无法理解来自 MongoDB 服务器的 JSON。

你能帮我配置 mongojack 或 Jackson 来处理来自 MongoDB 服务器的此类响应吗?

非常感谢。

此致, 帕科

在与 MongoDB 支持人员交谈后,他们向我确认了以下内容:

“驱动团队阅读了我们最后的评论,他们认为这确实是一个驱动程序错误。基本上,他们认为驱动程序应该检测到这是一个查询失败,并使用默认解码器来解码错误文档而不是由 MongoJack 注册的自定义解码器。

最相关的部分是 3.x 驱动程序系列中不存在此错误。所以我们建议您升级到 3.2.2 驱动程序(请注意,MongoJack 将 3.2 Java 驱动程序列为其首选依赖项:http://mongojack.org/dependencies.html)。"

所以,这不是 mongojack 问题 ;)

此致, 帕科