| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 大数据 -> es 异常 org.apache.http.ContentTooLongException: entity content is too long 解决思路 -> 正文阅读 |
|
|
[大数据]es 异常 org.apache.http.ContentTooLongException: entity content is too long 解决思路 |
|
问题:使用es 的java restHighLevelAPI 请求报错如下
?根据报错可以得到信息:返回的数据大于100MB;因为我的代码设置为 mClient.search(searchRequest, RequestOptions.DEFAULT) // RequestOptions.DEFAULT 为默认值100MB。 既然如此,如何自定义设置这个大小呢? 1.根据返回信息的第一行,最后定位的报错位置 为HeapBufferedAsyncResponseConsumer 类的第76行;双击shift (我的是IDEA编辑器),将类名输入查找到第76行,定位bufferLimitBytes这个成员变量是谁给它赋值的;
2.通过根据引用为HttpAsyncResponseConsumerFactory第61行new了HeapBufferedAsyncResponseConsumer 进行赋值;
3.HttpAsyncResponseConsumerFactory 是一个接口,寻找它的子类为HeapBufferedResponseConsumerFactory,是通过构造器传入;
4.上面是根据报错的倒推思路;根据我赋值的默认值??RequestOptions.DEFAULT;判断自定义设置肯定也在?RequestOptions类里,看下图小写和第三步的?HttpAsyncResponseConsumerFactory接口是一样的,RequestOptions的构造器如图是私有化的,说明我们是不能直接调用的;下一步追踪是谁调用了这个私有化的构造器 ? 5. 发现为该类的内部静态类的build 方法调用的;build方法返回的是一个RequestOptions;而我之前设置的RequestOptions.DEFAULT 也是一个?RequestOptions对象;因此大概可以确定关于参数的设置应围绕 内部静态类 Builder;而Builder 确实包含方法setHttpAsyncResponseConsumerFactory可以自定义参数大小 ? ? ?6.? 因此代码为
|
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/21 17:41:37- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |