Configure o Tomcat para usar um diretório temporário diferente para upload de arquivos

13

Minha instância do Tomcat está em uma unidade com pouco espaço restante. O aplicativo que estou executando move os uploads de arquivos do servidor para um NAS. Durante o upload, no entanto, o Tomcat mantém esse arquivo localmente, presumivelmente no diretório / temp.

Meu servidor possui uma segunda unidade de dados com bastante espaço para onde eu gostaria de realocar esse diretório temporário. Como posso configurar o Tomcat para que ele use um diretório temporário nesta outra unidade, ou seja. como posso mudar este diretório?

Edit: Estou executando o servidor Windows 2k3. Tentei configurar o var var CATALINA_TMPDIR, mas o Tomcat pareceu ignorá-lo.

Solução: estou usando o aplicativo "Monitor Tomcat" que passa

-Djava.io.tmpdir = Diretório C: \ some \ default \

para a JVM. Isso estava substituindo a variável ambiental que eu estava definindo. Você pode encontrá-lo em Java > Opções Java

Alterar isso corrigiu meu problema.

rcampbell
fonte

Respostas:

19

O java.io.tmpdirTomcat está definido como $CATALINA_BASE/temp. Você pode alterá-lo definindo a $CATALINA_TMPDIRvariável de ambiente antes de executar o startup.shTomcat.

De catalina.sh:

#   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
#                   the JVM should use (java.io.tmpdir).  Defaults to
#                   $CATALINA_BASE/temp.
CoverosGene
fonte
Isso parece funcionar apenas para sistemas * nix, porque quando tentei configurar o CATALINA_TMPDIR env var no Windows 2k3 e inicializei o Tomcat, ele continuou usando a pasta temporária padrão.
Rcampbell
Se você definir uma variável de ambiente do sistema no Windows, poderá ser necessário reiniciar antes que ela entre em vigor.
CoverOfGene
No Ubuntu você pode definir o diretório temporário no/etc/default/tomcat7
beldaz
3

No Windows, se você estiver executando o Tomcat como um serviço, provavelmente terá uma chave semelhante a

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

Defina o valor da sequência options(clique duas vezes para abrir) no final da existente como:

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

Isso funcionou para mim.

Ken Smith
fonte
1

Se você estiver no UNIX / Linux, basta vincular seu diretório temporário em uma primeira unidade ao diretório correspondente em uma segunda unidade. Talvez não seja uma solução mais elegante, mas funcionou para mim algum dia.

Slava I.
fonte