gpt4 book ai didi

java - 从 Java Servlet 发送巨大的 json 对象

转载 作者:行者123 更新时间:2023-11-29 07:01:26 24 4
gpt4 key购买 nike

Java servlet 返回 JSON 对象。

response.setContentType("application/json");
response.getWriter().write(json.toString());

JSON 对象包含从表(数据库)中获取的数据,其大小 > 50 MB。

在运行时,servlet 抛出这个错误:

java.lang.OutOfMemoryError: Java heap space

问题似乎出在写入 json 数据时。服务器无法为字符串分配大小大于 50 MB 的连续内存。

我无法找到解决此问题的方法。如何从 Servlet 发送巨大的 JSON 对象?

最佳答案

json.toString() 很可能会导致错误。它在发送任何内容之前从现有的 json 对象创建一个大字符串。

将所有内容都存入内存很方便,但在遇到任何限制时并不是很明智。一条一条地处理您的数据库记录并立即流式传输到客户端,而不是在内存中复制。经验法则:“任何给定的限制都会在某个时候被超过。”

关于java - 从 Java Servlet 发送巨大的 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25444597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com