ElasticSearch ClassCastException-MappingMetadata到MappingMetadata

问题描述

我需要你的帮助。我不知道这是怎么了。

当我启动JavaApp从ElasticSearch获取数据时,我得到了这个ClassCastException:

ElasticDBPersistanceImp | findQueryField Failed for templateId
java.lang.classCastException: org.elasticsearch.cluster.Metadata.MappingMetadata cannot be cast to org.elasticsearch.cluster.Metadata.MappingMetaData
    at com.initka.bprocess.hforms_formlist.persistance.impl.elastic.ElasticDBPersistanceImpl.getAllFields(ElasticDBPersistanceImpl.java:251) ~[classes/:?]
    at com.initka.bprocess.hforms_formlist.persistance.impl.elastic.ElasticDBPersistanceImpl.findQueryField(ElasticDBPersistanceImpl.java:226) ~[classes/:?]
    at com.initka.bprocess.hforms_formlist.persistance.impl.elastic.ElasticDBPersistanceImpl.getFieldDatadistict(ElasticDBPersistanceImpl.java:163) ~[classes/:?]
    at com.initka.bprocess.hforms_formlist.startup.FormlistSecurityServiceImpl.getTemplateIds(FormlistSecurityServiceImpl.java:40) ~[classes/:?]
    at com.initka.bprocess.hforms_formlist.startup.FormlistSecurityServiceImpl.<init>(FormlistSecurityServiceImpl.java:21) ~[classes/:?]
    at com.initka.bprocess.hforms_formlist.startup.HformsFormlistFactoryImpl.<init>(HformsFormlistFactoryImpl.java:55) ~[classes/:?]
    at com.initka.bprocess.hforms_formlist.startup.Booter.startTenant(Booter.java:70) ~[classes/:?]
    at com.initka.bprocess.hforms_formlist.startup.Booter.lambda$0(Booter.java:45) ~[classes/:?]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]

我正在使用的代码https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/java-rest-high-get-mappings.html

的文档中提供

因此,经过一些修改后,它看起来像:

GetMappingsResponse mapping1 = dbManager.getFormlistDBConnection().indices().getMapping(getMappingsRequest,RequestOptions.DEFAULT);
    Map<String,MappingMetaData> mappings2 = mapping1.mappings();
    MappingMetaData mappingMetaData = mappings2.get(indexName);
    Map<String,Object> sourceAsMap = mappingMetaData.getSourceAsMap();

所以也许你们当中有人有一个主意,这里怎么了?

预先感谢

解决方法

经过数小时的搜索,看来这是maven遇到的问题。

删除本地Maven存储库后,重新加载似乎可以正常工作的源文件。