1 異常信息:
Caused by: java.lang.RuntimeException: Unable to parse response body for Response{requestLine=PUT /an_path_statistic_log/_doc/11?timeout=1m HTTP/1.1, host=http://192.168.3.60:9200, response=HTTP/1.1 200 OK}at org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate.translateException(ElasticsearchRestTemplate.java:425)... 103 common frames omitted
Caused by: java.io.IOException: Unable to parse response body for Response{requestLine=PUT /an_path_statistic_log/_doc/11?timeout=1m HTTP/1.1, host=http://192.168.3.60:9200, response=HTTP/1.1 200 OK}at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1751)at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1702)at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1672)at org.elasticsearch.client.RestHighLevelClient.index(RestHighLevelClient.java:1029)at org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate.lambda$doIndex$0(ElasticsearchRestTemplate.java:158)at org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate.execute(ElasticsearchRestTemplate.java:408)... 102 common frames omitted
Caused by: java.lang.NullPointerException: nullat java.util.Objects.requireNonNull(Objects.java:203)at org.elasticsearch.action.DocWriteResponse.<init>(DocWriteResponse.java:116)at org.elasticsearch.action.index.IndexResponse.<init>(IndexResponse.java:43)at org.elasticsearch.action.index.IndexResponse.<init>(IndexResponse.java:28)at org.elasticsearch.action.index.IndexResponse$Builder.build(IndexResponse.java:96)at org.elasticsearch.action.index.IndexResponse.fromXContent(IndexResponse.java:78)at org.elasticsearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:2011)at org.elasticsearch.client.RestHighLevelClient.lambda$performRequestAndParseEntity$8(RestHighLevelClient.java:1673)at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1749)... 107 common frames omitted
2 異常來源:
本異常是博主測試SpringBoot2.6.3集成由Spring開發的Elasticsearch客戶端框架Spring Data Elasticsearch4.3.1出現的。
Elasticsearch服務端版本是8.13.4(博客寫時最新服務版本),異常內容可知是Elasticsearch服務端返回的格式,客戶端無法解析。
找了官網知道是版本不適配。
看其他博主的情況是SpringBoot2 + Elasticsearch服務端7+ 不報異常。
我自己測試可以的版本是SpringBoot3.3.0+Elasticsearch服務端8.13.4? 不報異常。
因此解決方案
1.降低Elasticsearch服務端版本,從8+降低到7+
2.升級SpringBoot版本到3+
3.捕獲異常。
查看Kibana是能查到插入的數據的,畢竟是響應體無法解析的異常,不影響插入嘛。因此捕獲異常也ok。