在调用es java客户端,执行新增es文档时报错:Unable to parse response body for Response
返回201,表示插入成功
java.io.IOException: Unable to parse response body for Response{requestLine=PUT /company/_doc/39?timeout=1m HTTP/1.1, host=http://127.0.0.1:31200, response=HTTP/1.1 201 Created}
可以在kibana查询新增数据
原因分析:
老版本es客户端无法解析新版es的返回,有可能是 spring-boot 版本低了,没有做这方面的处理(数据是能保存进 es 的,而且 es 也不报错)
处理:
通过获取返回体异常信息,判断处理文章来源:https://www.toymoban.com/news/detail-843694.html
/**
* 新增文档
*
* @param indexName
* @param id
* @param docObj
* @return
*/
public void addDoc(String indexName, String id, Object docObj) {
log.info("es新增文档,文档内容:{}",docObj);
try {
IndexRequest indexRequest = buildAddDoc(indexName, id, docObj);
restHighLevelClient.index(indexRequest, RequestOptions.DEFAULT);
} catch (IOException e) {
String msg = e.getMessage();
if (!msg.contains("Created")&&!msg.contains("200 OK")){
log.error("es新增文档失败,异常信息:", e);
throw new RuntimeException(e);
}
}
}
再次执行,正常运行文章来源地址https://www.toymoban.com/news/detail-843694.html
到了这里,关于ES报错— Unable to parse response body for Response的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!