一、项目情况:spring-boot+mongodb+dubbo。

二、问题:调用dubbo服务并使用spring-data-mongodb的gte,lte时间段比较查询,

@Reference(retries = 1)
private FunctionService functionService; //dubbo服务
//mongodb gte、lte查询Date beginOfToday = DateUtils.getBeginOfToday(); Date endOfToday = DateUtils.getEndOfToday();Criteria criteria = Criteria.where(Function.FIELD_CREATED_TIME).gte(beginOfToday).lte(endOfToday); List<Function> todayFunctionList= functionService.find(new Query(criteria));

报错信息如下:

User: null
系统发生异常java.lang.RuntimeException: org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class java.lang.Object.
org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class java.lang.Object.at org.bson.codecs.configuration.CodecCache.getOrThrow(CodecCache.java:46)at org.bson.codecs.configuration.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:63)at org.bson.codecs.configuration.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:37)at com.mongodb.DBObjectCodec.writeValue(DBObjectCodec.java:210)at com.mongodb.DBObjectCodec.encode(DBObjectCodec.java:128)at com.mongodb.DBObjectCodec.encode(DBObjectCodec.java:61)at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:63)at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:29)at org.bson.codecs.EncoderContext.encodeWithChildContext(EncoderContext.java:91)at org.bson.codecs.BsonDocumentCodec.writeValue(BsonDocumentCodec.java:133)at org.bson.codecs.BsonDocumentCodec.encode(BsonDocumentCodec.java:112)at org.bson.codecs.BsonDocumentCodec.encode(BsonDocumentCodec.java:40)at com.mongodb.connection.RequestMessage.addDocument(RequestMessage.java:253)at com.mongodb.connection.RequestMessage.addDocument(RequestMessage.java:205)at com.mongodb.connection.CommandMessage.encodeMessageBodyWithMetadata(CommandMessage.java:75)at com.mongodb.connection.RequestMessage.encodeWithMetadata(RequestMessage.java:160)at com.mongodb.connection.CommandProtocol.sendMessage(CommandProtocol.java:192)at com.mongodb.connection.CommandProtocol.execute(CommandProtocol.java:111)at com.mongodb.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:159)at com.mongodb.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:286)at com.mongodb.connection.DefaultServerConnection.command(DefaultServerConnection.java:173)at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:215)at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:206)at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:112)at com.mongodb.operation.FindOperation$1.call(FindOperation.java:487)at com.mongodb.operation.FindOperation$1.call(FindOperation.java:482)at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:239)at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:212)at com.mongodb.operation.FindOperation.execute(FindOperation.java:482)at com.mongodb.operation.FindOperation.execute(FindOperation.java:79)at com.mongodb.Mongo.execute(Mongo.java:772)at com.mongodb.Mongo$2.execute(Mongo.java:759)at com.mongodb.DBCursor.initializeCursor(DBCursor.java:851)at com.mongodb.DBCursor.hasNext(DBCursor.java:152)at org.springframework.data.mongodb.core.MongoTemplate.executeFindMultiInternal(MongoTemplate.java:1943)at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1763)at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1746)at org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:624)at org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:615)at ai.deepbrain.iengine.admin.service.impl.base.MongoBaseCrudServiceImpl.find(MongoBaseCrudServiceImpl.java:99)at com.alibaba.dubbo.common.bytecode.Wrapper28.invokeMethod(Wrapper28.java)at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46)at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72)at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53)at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:70)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:132)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38)at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:113)at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84)at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170)at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52)at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)

三、本应用中使用gte,lte查询没问题

@Autowired
private FunctionTagService functionTagService;//本应用的Service
//mongodb gte、lte查询
Date beginOfToday = DateUtils.getBeginOfToday();
Date endOfToday = DateUtils.getEndOfToday();
Criteria criteria = Criteria.where(FunctionType.FIELD_CREATED_TIME).gte(beginOfToday).lte(endOfToday);
List<FunctionTag> tagList = functionTagService.find(new Query(criteria));

四、问题分析

先记录一下问题,猜想是dubbo在序列化gte、lte请求参数时的bug。有空研究....有大神知道的话烦请告知下,多谢。

转载于:https://www.cnblogs.com/shuaiqing/p/9370031.html

dubbo服务使用spring-data-mongodb进行时间查询的bug记录相关推荐

  1. mongo java 日期,Java 8日期/时间(JSR-310)类型与Spring Data MongoDB的映射

    我有Java 8日期/时间字段的简单文档 @Document public class Token { private Instant createdAt; ... } 我希望坚持使用Spring D ...

  2. mongodb数据库java接口,MongoDB —— 使用Spring Data MongoDB操作数据库

    我们使用Spring Data MongoDB可以方便的在Spring boot项目中操作MongoDB 文档地址:https://docs.spring.io/spring-boot/docs/2. ...

  3. Spring Data MongoDB级联保存在DBRef对象上

    默认情况下, Spring Data MongoDB不支持对带有@DBRef注释的引用对象的级联操作,如引用所述 : 映射框架不处理级联保存 . 如果更改了Person对象引用的Account对象,则 ...

  4. mongo java 注解,在Java中使用Spring Data MongoDB操作Mong | zifangsky的个人博客

    前言:在上一篇文章中(PS:https://www.zifangsky.cn/923.html)我简单介绍了如何在Linux中安装MongoDB以及MongoDB的增删改查等基本命令用法(PS:更多M ...

  5. SpringBoot 集成 Spring Data Mongodb 操作 MongoDB 详解

    一.MongoDB 简介 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,且与关系数据库的最为相像的.它支持的数据结构非常松散,是类似 json 的 bso ...

  6. Spring Data MongoDB SpEL表达式注入漏洞安全风险通告第二次更新

    奇安信CERT 致力于第一时间为企业级用户提供安全风险通告和有效解决方案. 安全通告 近日,奇安信CERT监测到Spring Data MongoDB SpEL表达式注入漏洞(CVE-2022-229 ...

  7. 使用Spring访问Mongodb的方法大全——Spring Data MongoDB查询指南

    1.概述 Spring Data MongoDB 是Spring框架访问mongodb的神器,借助它可以非常方便的读写mongo库.本文介绍使用Spring Data MongoDB来访问mongod ...

  8. Spring Data MongoDB教程

    在当今世界,尽快启动并运行应用程序非常重要. 该应用程序还应该易于开发和维护. Spring是这样的框架,它提供了与许多不同框架的集成的简便性,这使得使用Spring开发应用程序变得容易. 一种这样的 ...

  9. 数据聚合Spring Data MongoDB:嵌套结果

    1引言 在上一篇文章中,我们构建了聚合管道的基本示例. 如果您需要有关如何创建项目和配置应用程序的更多详细信息,也许您想看看使用Spring Data MongoDB和Spring Boot进行数据聚 ...

最新文章

  1. oracle ora 14452,ORA-14452的出现原因解析及解决方法
  2. Eclipse常见问题集锦
  3. 小分子溶液当硬盘!布朗大学逆天研究:用代谢分子存储照片,准确率达99%
  4. oppoJava面试题,腾讯社招三面多久联系
  5. Spring Boot 最佳实践(三)模板引擎FreeMarker集成
  6. 【报告分享】2021年微信视频号生态趋势调查报告.pdf(附下载链接)
  7. java中的枚举类型
  8. c++删除数组中重复元素_LeetCode题目26:删除排序数组中的重复项
  9. 详细设计说明书评测规范
  10. const 成员函数
  11. Java——抽象类和接口
  12. php用高德地图api坐标返回市_php 使用高德地图(一) 画多边形及编辑 获取坐标 (简单总结)...
  13. 怎么查看Java的源代码
  14. Hulu九月热招 | 全职社招
  15. 什么是前贴片、中贴片和后贴片广告?它们分别在哪里使用?
  16. Linux学习之路-基础命令、管道、软连接【3】---20171120
  17. 斯卡布罗市集 (口哨/宁林 人声/宁林) - 韩乘光
  18. 转:我通过微软亚洲研究院面试的经历
  19. ImportError:attempted relative import with no known parent package
  20. javaSE 笔记全!

热门文章

  1. Java 常用类 -Arrays
  2. Jenkins配置Java项目1(Java+Maven+Tomcat+SVN/Git)
  3. OpenCV的示例程序在哪里?
  4. java的类型默认存储类型_java 问题:保存对话框的默认文件类型?
  5. Infiniband网络抓包
  6. OVS 非VXLAN的收发包调用栈(二十二)
  7. leetcode算法题--链表中的下一个更大节点★
  8. Go安装web框架revel
  9. 网络传输大端序_基于大端法、小端法以及网络字节序的深入理解
  10. three.js 插件