Konfigurasikan Tomcat untuk menggunakan direktori temp berbeda untuk unggahan file

13

Contoh Tomcat saya duduk di drive dengan sedikit ruang tersisa. Aplikasi yang saya jalankan tidak memindahkan unggahan file dari server ke NAS. Namun, selama pengunggahan, Tomcat menyimpan file ini secara lokal, mungkin di direktori / temp.

Server saya memiliki drive data kedua dengan banyak ruang tempat saya ingin memindahkan direktori temp ini. Bagaimana saya dapat mengkonfigurasi Tomcat sehingga ia menggunakan direktori temp pada drive lain ini, yaitu. bagaimana saya bisa pindah direktori ini?

Sunting: Saya menjalankan server Windows 2k3. Saya mencoba mengatur CATALINA_TMPDIR env var, tetapi Tomcat tampaknya mengabaikannya.

Solusi: Saya menggunakan aplikasi "Monitor Tomcat" yang lewat

-Djava.io.tmpdir = C: direktori \ some \ default \

ke JVM. Ini mengesampingkan variabel lingkungan yang saya atur. Anda dapat menemukannya di Java > Java Options

Mengubah ini telah memperbaiki masalah saya.

rcampbell
sumber

Jawaban:

19

Di java.io.tmpdirTomcat diatur ke $CATALINA_BASE/temp. Anda dapat mengubahnya dengan mengatur $CATALINA_TMPDIRvariabel lingkungan sebelum menjalankan startup.shTomcat.

Dari catalina.sh:

#   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
#                   the JVM should use (java.io.tmpdir).  Defaults to
#                   $CATALINA_BASE/temp.
CoverosGene
sumber
Tampaknya ini hanya berfungsi untuk sistem * nix, karena ketika saya mencoba mengatur CATALINA_TMPDIR env var di Windows 2k3 dan mem-boot Tomcat, ia terus menggunakan folder temp default.
rcampbell
Jika Anda mengatur variabel lingkungan sistem di Windows, Anda mungkin perlu mem-boot ulang sebelum mulai berlaku.
CoverosGene
Di Ubuntu Anda dapat mengatur direktori temp di/etc/default/tomcat7
beldaz
3

Di windows jika Anda menjalankan Tomcat sebagai layanan, Anda mungkin memiliki kunci yang mirip dengan

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

Tetapkan nilai string options(klik dua kali untuk membuka) di akhir yang sudah ada sebagai:

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

Ini berhasil untuk saya.

Ken Smith
sumber
1

Jika Anda menggunakan UNIX / Linux, Anda hanya dapat menghubungkan direktori temp Anda pada drive pertama ke direktori yang sesuai pada drive kedua. Mungkin bukan solusi yang paling elegan tetapi kadang-kadang berhasil untuk saya.

Slava I.
sumber