我在将大文件写入 servletOutputStream 时遇到 java.lang.outOfMemoryError 异常。 默认情况下,每个响应都使用 ehcache.constructs.web.filter 对象进行包装以进行 GZIP 压缩。根据日志,在 Filter 对象中抛出异常。 有没有办法增加可用内存,从而不会发生 outOfMemoryError 异常?
最佳答案
您需要将选项“-Xmx1024m”添加到运行 servlet 容器的 java
命令。 (将 1024m 替换为您喜欢的任何堆大小;这意味着 1024 兆字节。)如果您使用的是 Tomcat,那么这意味着您在环境变量 CATALINA_OPTS 中设置它。您的服务器配置会有所不同。
但是,问题是在内存中缓冲这么大的文件。这是浪费。试试这个压缩过滤器,它不会以这种方式缓冲:
关于过滤器中的 Java OutOfMemory 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2476107/