Если вы получаете подобное исключение, то вам, скорее всего, нужно увеличить размер памяти, которое доступно JVM. По умолчанию максимальный размер кучи устанавливается в довольно маленькое значение, и его часто приходится указывать вручную.
Windows
Посмотрите файл %CATALINA_BASE%\bin\catalina.bat. Вы увидите, что он ссылается на файл %CATALINA_BASE%\bin\setenv.bat.
Создайте файл setenv.bat и пропишите в нём следующее:
1 |
set JAVA_OPTS=-Dfile.encoding=UTF-8 -Xms128m -Xmx2048m |
Здесь -Xms — это начальный объём памяти, -Xmx — максимальный объём памяти. Эти настройки для кучи (heap), а сама JVM может занять несколько больше. В предыдущих версиях Java (до версии 8) были ещё параметры -XX:PermSize=64m -XX:MaxPermSize=256m , но они уже устарели).
Перезапустите Apache Tomcat он считает новые параметры из файла setenv.bat и применит их.
Linux
Посмотрите файл $CATALINA_BASE/bin/catalina.sh . Вы увидите, что он ссылается на файл $CATALINA_BASE/bin/setenv.sh.
Создаёте файл setenv.sh и пропишите в нём следующее:
export JAVA_OPTS="-Dfile.encoding=UTF-8 -Xms128m -Xmx2048m"
Здесь -Xms — это начальный объём памяти, -Xmx — максимальный объём памяти. Эти настройки для кучи (heap), а сама JVM может занять несколько больше. В предыдущих версиях Java (до версии 8) были ещё параметры -XX:PermSize=64m -XX:MaxPermSize=256m , но они уже устарели).
Перезапустите Apache Tomcat он считает новые параметры из файла setenv.sh и применит их.
Приведённые выше значения для -Xms и - Xmx указаны только для примера. Вам нужно установить те значения, которые подходят для вашего сервера.