当我的应用程序收到来自MongoDB服务器的错误时,我遇到了一个问题,例如:
假设我在MongoDB中做了一个查找,但是来自MongoDB服务器的响应是一个错误,因为超时:
{ $err:"MongoTimeout bla to...bla bla bla.“代码: 50 }
JacksonDBDecoder期待我的Java类型--例如,我的类"Stuff“(包含几个字段,如”价格“和”权重“),但是当它接收到之前的JSON时,就没有任何匹配的字段与”价格“和”权重“匹配,因此结果是空的:{}
空的JSON将由mongo驱动程序类(com.mongodb.QueryResultIterator.throwOnQueryFailure处理),它永远不会记录原始信息"MongoTimeout by to...bla bla bla.“因为解码器无法理解来自MongoDB服务器的JSON。
您能帮我配置mongojack或Jackson来处理来自MongoDB服务器的这类响应吗?
非常感谢。
你好,帕科。
发布于 2016-03-30 14:57:33
在与MongoDB支持部门交谈后,他们向我确认了以下内容:
“驱动小组阅读了我们最后的评论,他们认为这确实是一个驱动程序错误。基本上,他们认为驱动程序应该检测到这是查询失败,并使用默认解码器来解码错误文档,而不是使用MongoJack注册的自定义解码器。
最相关的部分是这个bug在3.x驱动程序系列中不存在。因此,我们对您的建议是升级到3.2.2驱动程序(注意,MongoJack列出3.2Java驱动程序作为它的首选依赖项:http://mongojack.org/dependencies.html)。
因此,这不是蒙古问题;)
你好,帕科。
https://stackoverflow.com/questions/36261655
复制相似问题