2012-07-12 81 views
2

我正在使用Tomcat 7.0.28。我已經部署了一個戰爭文件。 在這個戰爭文件中有一個類似於我們可以上傳文件的結構的服務器。tomcat中的Java堆空間錯誤

現在,當我訪問該網頁正在工作,但是當我嘗試上傳大文件時,它顯示JAVA堆空間的錯誤。

我該如何解決它?

+0

在啓動時設置更高的堆大小可能會解決您的問題。 – fdomig 2012-07-12 07:00:00

+0

關於如何在tomcat中設置java堆空間的衆多答案之一:http://serverfault.com/questions/139435/where-to-set-java-heap-options-eg-xmx-for-tomcat-6 -under-ubuntu-9-04 – 2012-07-12 07:01:18

回答

6

您可能試圖將整個文件放在內存中。你的第一槍應該是改變Tomcat JVM啓動選項中的-Xmx參數,以增加它的記憶。除此之外,你必須一次讀取一塊文件,並將其寫入硬盤,以釋放內存。

+0

我是新來的JAVA以及tomcat。如何實現上述.. – Vijay 2012-07-12 07:12:50

+0

@Vijay這裏有一個鏈接[設置Xmx參數](http://serverfault.com/questions/139435/where-to-set-java-heap-options-eg-xmx-for -Tomcat -6-下的ubuntu-9月4日)。至於讀取文件塊,你如何*當前*讀取文件? – Miquel 2012-07-12 07:17:18

+0

實際上,我已經設置了BIM服務器,並且他們提供了用於部署的WAR文件。所以不知道他們是如何讀取文件的。但我確實使用-Xmx屬性更改了堆大小,但仍然無法正常工作。 – Vijay 2012-07-12 08:31:53

3

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

Linux:打開Catalina.sh將文件置於「bin」目錄中。你必須將更改應用於此行

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

的Windows:

打開 「catalina.bat中」 文件放在 「bin」 目錄

set CATALINA_OPTS=-server -Xms256m -Xmx1024m 

重新啓動上述更改後的tomcat。

+0

我做了同樣的事情,但它仍然沒有工作... – Vijay 2012-07-13 05:30:37