java内存不足:Tomcat 7服务的堆空间

java内存不足:Tomcat 7服务的堆空间,java,tomcat,Java,Tomcat,我试图解决这个问题,这只发生在下载任何大文件(大小为500mb)时。目前我所做的工作如下 但是,我在控制器上仍然遇到这个错误(我使用的是SpringMVC) 已更新(加载文件的函数) 我还遗漏了什么?您正在将整个文件加载到内存中: byte[] bytes = new byte[(int) file.length()]; 这当然会打破。这不是你处理下载的方式。您必须直接在http应答流中写入 下面是一个servlet执行此操作的示例:您正在将整个文件加载到内存中: byte[] bytes

我试图解决这个问题,这只发生在下载任何大文件(大小为500mb)时。目前我所做的工作如下

但是,我在控制器上仍然遇到这个错误(我使用的是SpringMVC)

已更新(加载文件的函数)


我还遗漏了什么?

您正在将整个文件加载到内存中:

byte[] bytes = new byte[(int) file.length()];
这当然会打破。这不是你处理下载的方式。您必须直接在http应答流中写入


下面是一个servlet执行此操作的示例:

您正在将整个文件加载到内存中:

byte[] bytes = new byte[(int) file.length()];
这当然会打破。这不是你处理下载的方式。您必须直接在http应答流中写入


下面是一个servlet执行此操作的示例:

com.dnag2.controller.DownloadController的代码是什么?您正在将整个文件加载到内存中吗?堆空间设置是什么-XMX用相关的代码片段更新了我的问题。
com.dnag2.controller.DownloadController的代码是什么?您正在将整个文件加载到内存中吗?堆空间设置是什么-XMX用相关的代码片段更新了我的问题。java REST webservice也有同样的问题。。有没有办法在REST中解决这个问题?java REST webservice也有同样的问题。。有没有办法在REST中解决这个问题?
byte[] bytes = new byte[(int) file.length()];