Настройте Tomcat використовувати інший тимчасовий каталог для завантаження файлів


14

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

Мій сервер має другий накопичувач даних з великою кількістю місця, куди я хотів би перенести цей тимчасовий каталог. Як я можу налаштувати Tomcat так, щоб він використовував тимчасовий каталог на цьому іншому диску, тобто. як я можу перенести цей каталог?

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

Рішення: я використовую додаток "Monitor Tomcat", який проходить

-Djava.io.tmpdir = C: \ some \ default \ каталог

до СВМ. Це було важливим для екологічної змінної, яку я встановлював. Ви можете знайти її в розділі Java > Параметри Java

Зміни цього виправили мою проблему.

Відповіді:


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.

Це, здається, працює лише для * nix систем, тому що коли я спробував встановити CATALINA_TMPDIR env var у Windows 2k3 та завантажив Tomcat, він продовжував використовувати тимчасову папку temp.
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, ви можете просто позначити тимчасовий каталог на першому диску до відповідного каталогу на другому диску. Можливо, не найелегантніше рішення, але воно працювало для мене колись.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.