【问题标题】:JacksonDBDecoder - Server errors from MongoDB - mongojack 2.3.0JacksonDBDecoder - 来自 MongoDB 的服务器错误 - mongojack 2.3.0
【发布时间】:2016-03-28 11:46:20
【问题描述】:

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

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

{ $err: "MongoTimeout 由于...bla bla bla..." 代码:50 }

JacksonDBDecoder 期待我的 Java 类型,例如我的类“Stuff”(包含“价格”和“重量”等多个字段),但是当它接收到之前的 JSON 时,没有任何与“价格”匹配的字段和“重量”,所以结果是空的:{}

空的 JSON 将由 mongo-java-driver 类处理(完全是 com.mongodb.QueryResultIterator.throwOnQueryFailure),它永远不会记录原始信息“MongoTimeout due to...bla bla bla...”和50,因为解码器无法理解来自 MongoDB 服务器的 JSON。

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

非常感谢。

问候, 帕科。

【问题讨论】:

    标签: mongodb jackson objectmapper mongojack


    【解决方案1】:

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

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

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

    所以,这不是 mongojack 问题 ;)

    问候, 帕科。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 2015-06-15
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      • 1970-01-01
      相关资源
      最近更新 更多