java反序列化时区,Jackson使用Java 8将Elasticsearch反序列化为LocalDateTime
我们在日期字段中填充了longinlasticsearch索引。
字段映射为:
@Field(type = FieldType.Date)
@JsonFormat(shape = JsonFormat.Shape.NUMBER_INT)
private LocalDateTime created;
我使用Jackson JavaTimeModule并Jdk8Module使用以下配置:
@Bean
public ElasticsearchOperations elasticsearchTemplate() {
return new ElasticsearchRestTemplate(client(), new CustomEntityMapper());
}
public static class CustomEntityMapper implements EntityMapper {
private final ObjectMapper objectMapper;
public CustomEntityMapper() {
//we use this so that Elasticsearch understands LocalDate and LocalDateTime objects
objectMapper = new ObjectMapper()
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true)
.configure(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS, false)
.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
.configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS, false)
//MUST be registered BEFORE calling findAndRegisterModules
.registerModule(new JavaTimeModule())
.registerModule(new Jdk8Module());
//only autodetect fields and ignore getters and setters for nonexistent fields when serializing/deserializing
objectMapper.setVisibility(objectMapper.getSerializationConfig().getDefaultVisibilityChecker()
.withFieldVisibility(JsonAutoDetect.Visibility.ANY)
.withGetterVisibility(JsonAutoDetect.Visibility.NONE)
.withSetterVisibility(JsonAutoDetect.Visibility.NONE)
.withCreatorVisibility(JsonAutoDetect.Visibility.NONE));
//load the other available modules as well
objectMapper.findAndRegisterModules();
}
@Override
public String mapToString(Object object) throws IOException {
return objectMapper.writeValueAsString(object);
}
@Override
public T mapToObject(String source, Class clazz) throws IOException {
return objectMapper.readValue(source, clazz);
}
}
但是,当我尝试使用以下字段解析索引中的实体时:
"created" : 1563448935000
我收到一个错误:
com.fasterxml.jackson.databind.exc.MismatchedInputException: Unexpected token (VALUE_NUMBER_INT), expected VALUE_STRING: Expected array or string.
我认为,可以对long日期反序列化,但是我看不到缺少的内容。
如果我将其映射到Long它,则当然可以工作,并且如果将值存储为String,我们也可以将其成形并正确格式化@JsonFormat。但是有可能也有long->LocalDateTime吗?
java反序列化时区,Jackson使用Java 8将Elasticsearch反序列化为LocalDateTime相关推荐
- jackson java反序列化_java – Jackson JSON强制反序列化为对象
我得到了一个代表团的课程设置 public class MyClass implements List { public String name; public List target; // thi ...
- java不同时区时间转换,Java在不同时区转换时间
本文中,我们将展示如何在不同时区之间转换时间,我们分别使用Date.Calendar.Joda Time. 本例从新加坡时区 (GMT+8:00) Asia/Singapore - Singapore ...
- java反序列化漏洞的成因,JAVA反序列化漏洞解决办法
一.漏洞描述: 近期,反序列化任意代码执行漏洞持续发酵,越来越多的系统被爆出存在此漏洞.Apache Commons工具集广泛应用于JAVA技术平台,存在Apache Commons Componen ...
- java不同时区时间转换,Java不同时区(timezone)之间时间转换
最近出现一个问题是这样的 我们的系统在国外打印的日志时间由于时差关系和国内不一致 看起来不方便 希望国外的日志和国内保持一致 即 需要对不同时区的时间做转换调整 统一为国内时间. 一.关于时区的一些概 ...
- common-collections中Java反序列化漏洞导致的RCE原理分析
2019独角兽企业重金招聘Python工程师标准>>> common-collections中Java反序列化漏洞导致的RCE原理分析 隐形人真忙 · 2015/11/11 22:4 ...
- 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(十)-Java反序列化漏洞(2)
目录 前言: 2.项目配置 3.编写"java 反序列化漏洞"后端代码 4.编写"java 反序列化漏洞"前端代码 5.运行测试 前言: 本篇文章在上一篇文章基 ...
- java反序列化漏洞分析
Java反序列化漏洞(Java Deserialization Vulnerabilities)是一种常见的安全漏洞,其攻击方式是利用Java中的序列化和反序列化机制,通过在序列化数据中插入恶意代码, ...
- (38)【JAVA反序列化漏洞】简介、原理、工具、环境、靶场、思路
目录 一.简介: 二.原理: 2.1.Java对象: 2.2.Java 序列化: 2.3.Java 反序列化: 三.函数: 四.工具: 4.1.ysoserial 0.0.4版 4.2. payloa ...
- java反序列化漏洞:2015年被低估的“破坏之王”
近日,2015年最为被低估的,具有巨大破坏力的漏洞浮出水面.在FoxGlove Security安全团队的@breenmachine 发布一篇博客中介绍了该漏洞在最新版的WebLogic.WebSph ...
最新文章
- Dataset之CamVid:CamVid数据集的简介、下载、使用方法之详细攻略
- 如何在SSIS的脚本组件中访问变量
- MemDC,GDI绘制注意点
- 996!007!同是敲了2万行代码,为什么他却晋升了?
- 【转】Android应用的自动升级、更新模块的实现 (2)
- 【译】Effective TensorFlow Chapter11——在TensorFlow中调试模型
- 使用C#中的反射从字符串获取属性值
- java column_@Column注解属性详解
- MAVEN(一)中的Scope
- python自建模块_python导入自建模块的问题
- Win11系统虽香但不是想升就能升?这三款精品win11升级检测工具告诉您的爱机是否达标!!!
- MT6739充电IC集成步骤
- 2.14 Whisper和Swarm
- 博客园Training Team加入申请帖
- MySQL的binLog、redoLog、undoLog是什么?
- SVAC国家标准介绍
- 大数据和Hadoop什么关系?为什么大数据要学习Hadoop?
- String转化为date类型,从而获取星期几
- 【理科】2020年高考数学(第八章 立体几何)考点与题型全归纳
- 在linux系统命令行模式下如何输入中文
热门文章
- Python isdigit() isalnum()
- swagger ui 值类型形参加文字注释
- 收缩sqlserver事务日志
- (转载)Manacher'sAlgorithm: O(n)时间求字符串的最长回文子串
- Batis-iBatis基本操作(增删改查)
- ST Visual Programmer批量烧写教程
- AndroidStudio_安卓原生开发_获取系统S/N序列号_实现在springboot服务端_设备远程保活监控---Android原生开发工作笔记159
- SpringCloud工作笔记062---APP消息推送_个推平台API使用经验
- SpringCloud学习笔记008---杂七杂八002_spring 注解@Value详解_@Value(quot;#{}quot;)与@Value(quot;${}quot;)的区别
- mybatis 主键自增 insert后返回主键