【问题标题】:Java Heap Space Error in tomcattomcat中的Java堆空间错误
【发布时间】:2012-07-12 15:31:43
【问题描述】:

我使用的是 Tomcat 7.0.28。我已经部署了一个战争文件。 在这个 war 文件中有一个类似服务器的结构,我们可以在其中上传文件。

现在当我访问该网页时它正在工作,但是当我尝试上传大文件时它显示 JAVA 堆空间错误。

我该如何解决?

【问题讨论】:

标签: java tomcat


【解决方案1】:

您可能正试图将整个文件放入内存中。您的第一个尝试应该是更改 Tomcat JVM 启动选项中的 -Xmx 参数以提供更多记忆。除此之外,您必须一次读取一个文件块,然后将其写入硬盘驱动器,以释放内存。

【讨论】:

  • @Vijay 这是指向setting the Xmx paramter 的链接。至于分块读取文件,你当前是如何读取文件的?
  • 实际上我已经设置了 BIM SERVER,他们提供了用于部署的 WAR 文件。所以不知道他们是如何读取文件的。但我确实使用 -Xmx 属性更改了堆大小,但它仍然无法正常工作。
  • 增加堆大小没有用处——去与“BIM SERVER”人员交谈并询问他们的文件上传要求。您还可以将服务器配置为在 OOME 上进行堆转储,以便查看它占用了所有空间:可能是包含文件内容的巨大字节数组。如果是这样,“BIM SERVER”写得不好。
【解决方案2】:

您可以使用以下命令在 tomcat 中增加HeapSize

Linux : 打开放在“bin”目录下的 Catalina.sh 文件。您必须将更改应用到此行

CATALINA_OPTS="$CATALINA_OPTS -server -Xms256m -Xmx1024m "

Windows:

打开“bin”目录下的“Catalina.bat”文件

set CATALINA_OPTS=-server -Xms256m -Xmx1024m 

以上修改后重启tomcat。

【讨论】:

    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 2015-12-15
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    相关资源
    最近更新 更多