过滤器中的 Java OutOfMemory 错误

标签 java servlets

我在将大文件写入 servletOutputStream 时遇到 java.lang.outOfMemoryError 异常。 默认情况下,每个响应都使用 ehcache.constructs.web.filter 对象进行包装以进行 GZIP 压缩。根据日志,在 Filter 对象中抛出异常。 有没有办法增加可用内存,从而不会发生 outOfMemoryError 异常?

最佳答案

您需要将选项“-Xmx1024m”添加到运行 servlet 容器的 java 命令。 (将 1024m 替换为您喜欢的任何堆大小;这意味着 1024 兆字节。)如果您使用的是 Tomcat,那么这意味着您在环境变量 CATALINA_OPTS 中设置它。您的服务器配置会有所不同。

但是,问题是在内存中缓冲这么大的文件。这是浪费。试试这个压缩过滤器,它不会以这种方式缓冲:

http://sourceforge.net/projects/pjl-comp-filter/

关于过滤器中的 Java OutOfMemory 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2476107/

相关文章:

java - 为什么基元不能为空

java - CXF-JaxRS WebClient 的自定义对象输入

Java:JSP 在页面的其余部分停止执行

java - 如何在 Eclipse 中安装 Web 平台工具?

java - 如何正确编码完整的 http url 字符串?

Java,特定于类的异常与标准异常

java - 用于在 java 中对对象数组列表进行排序的可比较和覆盖比较方法

java - 将数据从 JSP 传递到 Servlet

jsp - 检查jsp文件中的servlet session 属性值

jsp - 删除条目并将结果集从 servlet 发送到 jsp 页面时出错