博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Jest操作ElasticSearch 报错:No time zone indicator问题的解决方案
阅读量:5989 次
发布时间:2019-06-20

本文共 1903 字,大约阅读时间需要 6 分钟。

问题描述: 在ElasticSearch中的时间格式是 yyyy-MM-dd'T'HH:mm:ss 的格式的,但是在使用Jest查询结果时 执行jestClient.execute(search) ,会提示错误:

com.google.gson.JsonSyntaxException: 2018-09-30T16:07:53...Caused by: java.text.ParseException: Failed to parse date ["2018-09-30T16:07:53"]: No time zone indicator    at com.google.gson.internal.bind.util.ISO8601Utils.parse(ISO8601Utils.java:274) ~[gson-2.8.5.jar:na]    at com.google.gson.DefaultDateTypeAdapter.deserializeToDate(DefaultDateTypeAdapter.java:149) ~[gson-2.8.5.jar:na]    ... 48 common frames omitted

可以看到错误时Gson的错误,我们数据的格式和Jest去查询的格式不相符所致

图片描述

看源码在io.searchbox.client.AbstractJestClient#ELASTIC_SEARCH_DATE_FORMAT 中定义了 public static final String ELASTIC_SEARCH_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ssZ"; 与我们的数据格式不相符,因此需要去定义Gson的格式

解决方案: 将JestClient自己实现并加入spring的管理中,问题得到解决

/** * @author qi.liu * @create 2018-10-18 15:14 * @desc 描述: **/@Configurationpublic class JestClientConfig {    @Autowired(required = false)    private JestClientFactory jestClientFactory;    @Autowired    private ElasticsearchJestProperties properties;    @Bean    public JestClient createJestClient() {        GsonFactoryBean gsonFactoryBean = new GsonFactoryBean();        gsonFactoryBean.setDateFormatPattern("yyyy-MM-dd'T'HH:mm:ss");        gsonFactoryBean.afterPropertiesSet();        HttpClientConfig.Builder builder = new HttpClientConfig.Builder(properties.getUri()).gson(gsonFactoryBean.getObject())                .maxTotalConnection(properties.getMaxTotalConnection())                .defaultMaxTotalConnectionPerRoute(properties.getDefaultMaxTotalConnectionPerRoute())                .readTimeout(properties.getReadTimeout())                .multiThreaded(properties.getMultiThreaded());        JestClientFactory factory = jestClientFactory != null ? jestClientFactory : new JestClientFactory();        factory.setHttpClientConfig(builder.build());        return factory.getObject();    }}

时间被正确解析出来:

图片描述

转载地址:http://vsnlx.baihongyu.com/

你可能感兴趣的文章
RHEL/CentOS/OEL5/6.x高危漏洞修补
查看>>
CentOS7安装配置SAMBA服务器
查看>>
java将固定长度的byte数组转成String,并去掉后面多余的0
查看>>
Centos7安装Python3.7(兼容Python2.7)
查看>>
每日一笑图
查看>>
redhat下的磁盘操作-分区,格式化,挂载等
查看>>
全局变量相互依赖和初始化顺序的解决办法
查看>>
LAMP搭建14:Apache禁止解析PHP
查看>>
支付宝支付-手机网站支付接口(H5手机站)
查看>>
Android Web Server
查看>>
MAVEN插件积累
查看>>
我的友情链接
查看>>
阿里云边缘节点ENS助力淘宝构建音视频通信网络
查看>>
raid5和raid10 哪种适合你(2)
查看>>
我的友情链接
查看>>
ASA静态PAT的双向访问测试及理解
查看>>
交换机接口传输方式和速率导致故障
查看>>
我的友情链接
查看>>
虚拟机下 修改Linux系统的MAC
查看>>
CDH版本hadoop2.6伪分布式安装
查看>>