Found interface org.elasticsearch.common.bytes.BytesReference, but class was expected


由於我用的是springboot2.3.0版本,es用的是7.4.2,但是boot中研究定義了es的版本是7.6.2,

 https://stackoverflow.com/questions/61029889/error-at-createindex-elasticsearch-using-elasticsearchoperations-why-is-the-by

 在這里修改版本沒有生效,導致項目引入了2個版本,下面是我用的api,(暫時還不知道為什么)

        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>7.4.2</version>
        </dependency>  

注:后面重啟發現就可以了。。。。

然后就會發生以下錯誤

java.lang.IncompatibleClassChangeError: Found interface org.elasticsearch.common.bytes.BytesReference, but class was expected
at org.elasticsearch.client.RequestConverters.createEntity(RequestConverters.java:689)
at org.elasticsearch.client.RequestConverters.createEntity(RequestConverters.java:684)
at org.elasticsearch.client.IndicesRequestConverters.createIndex(IndicesRequestConverters.java:128)
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1760)
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1734)
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1696)
at org.elasticsearch.client.IndicesClient.create(IndicesClient.java:191)
at org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate.createIndex(ElasticsearchRestTemplate.java:1248)
at org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate.createIndex(ElasticsearchRestTemplate.java:1256)

查找原因,應該是2個版本原因導致的,於是就統一一下,我改不了7.4.2,那我就選擇加入7.6.2,哈哈哈。

 

 存在一個版本,然后再進行測試。

  @Autowired(required = false)
  private RestHighLevelClient client;

  @Test
  void indexData() throws IOException {
    IndexRequest request = new IndexRequest("users");
    request.id("1");
    User u = new User();
    u.setAge(11);
    u.setGender("男");
    u.setUserName("wgr");
    String s = JSON.toJSONString(u);
    request.source(s, XContentType.JSON);
    IndexResponse indexResponse = client.index(request, GulimallElasticSearchConfig.COMMON_OPTIONS);
    System.out.println(indexResponse);
  }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM