Gau*_*mar 1 java json servlets
Java servlet返回JSON对象.
response.setContentType("application/json");
response.getWriter().write(json.toString());
Run Code Online (Sandbox Code Playgroud)
JSON对象包含从表(数据库)大小获取的数据,大小> 50 MB.
在运行时,servlet会抛出此错误:
java.lang.OutOfMemoryError: Java heap space
Run Code Online (Sandbox Code Playgroud)
似乎问题在于编写json数据.服务器无法为字符串分配大小> 50 MB的连续内存.
我无法找到解决此问题的方法.如何从Servlet发送巨大的JSON对象?
json.toString()很可能会导致错误.在发送任何内容之前,它会从已存在的json对象创建一个大字符串.
把所有东西都塞进记忆中很方便,但是当遇到任何限制时都不是很明智.逐个处理数据库记录并立即流式传输到客户端,而不是在内存中复制.经验法则:"在某些时候会超出任何限制."