Настройте Tomcat для использования другого временного каталога для загрузки файлов

14

Мой экземпляр Tomcat находится на диске с небольшим оставшимся пространством. Приложение, которое я запускаю, переносит загрузку файлов с сервера в NAS. Однако во время загрузки Tomcat хранит этот файл локально, предположительно в каталоге / temp.

На моем сервере есть второй диск данных с большим количеством места, куда я бы хотел переместить этот временный каталог. Как я могу настроить Tomcat так, чтобы он использовал временный каталог на этом другом диске, т.е. как я могу переместить этот каталог?

Редактировать: я использую сервер Windows 2k3. Я попытался установить переменную CATALINA_TMPDIR env var, но Tomcat, похоже, проигнорировал ее.

Решение: я использую приложение «Monitor Tomcat», которое проходит

-Djava.io.tmpdir = C: \ некоторые \ умолчанию \ каталог

в JVM. Это переопределяло переменную среды, которую я устанавливал. Вы можете найти его в Java > Параметры Java

Изменение этого исправило мою проблему.

rcampbell
источник

Ответы:

20

В java.io.tmpdirTomcat установлено значение $CATALINA_BASE/temp. Вы можете изменить его, установив $CATALINA_TMPDIRпеременную среды перед запуском startup.shдля Tomcat.

От catalina.sh:

#   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
#                   the JVM should use (java.io.tmpdir).  Defaults to
#                   $CATALINA_BASE/temp.
CoverosGene
источник
Похоже, это работает только для систем * nix, потому что когда я попытался установить CATALINA_TMPDIR env var в Windows 2k3 и загрузил Tomcat, он продолжал использовать временную папку по умолчанию.
rcampbell
Если вы установили системную переменную среды в Windows, вам может потребоваться перезагрузка, прежде чем она вступит в силу.
CoverosGene
В Ubuntu вы можете установить временный каталог в/etc/default/tomcat7
beldaz
3

В Windows, если вы используете Tomcat в качестве службы, у вас, вероятно, есть ключ, похожий на

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\myApplication\Parameters\Java

Установите значение строки options(двойной щелчок, чтобы открыть) в конце существующего как:

-Djava.io.tmpdir=c:\{yourDir}

Это сработало для меня.

Кен Смит
источник
1

Если вы работаете в UNIX / Linux, вы можете просто вставить временную директорию на первом диске в соответствующий каталог на втором диске. Возможно, не самое элегантное решение, но когда-то оно мне помогло.

Слава И.
источник