配置Tomcat以使用其他临时目录进行文件上传


14

我的Tomcat实例坐在驱动器上,剩余空间很少。我正在运行的应用程序确实将文件上载从服务器移到了NAS中。但是,在上载期间,Tomcat将此文件保存在本地,大概在/ temp目录中。

我的服务器还有另一个数据驱动器,该驱动器具有足够的空间,我想将该临时目录重新定位到该驱动器。我如何配置Tomcat,以便它在另一个驱动器上使用临时目录,即。如何重新定位此目录?

编辑:我正在运行Windows服务器2k3。我尝试设置CATALINA_TMPDIR env var,但是Tomcat似乎忽略了它。

解决方案:我正在使用通过的“ Monitor Tomcat”应用程序

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

到JVM。这覆盖了我设置的环境变量。您可以在Java > Java选项下找到它

更改此设置已解决了我的问题。

Answers:


20

java.io.tmpdirTomcat中设置为$CATALINA_BASE/temp。您可以通过$CATALINA_TMPDIR在运行startup.shTomcat 之前设置环境变量来更改它。

来自catalina.sh

#   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
#                   the JVM should use (java.io.tmpdir).  Defaults to
#                   $CATALINA_BASE/temp.

这似乎仅适用于* nix系统,因为当我尝试在Windows 2k3中设置CATALINA_TMPDIR env var并启动Tomcat时,它将继续使用默认的temp文件夹。
rcampbell

如果在Windows中设置系统环境变量,则可能需要重新启动才能生效。
CoverosGene

在Ubuntu上,您可以在/etc/default/tomcat7
beldaz '16

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,则可以将第一个驱动器上的temp目录符号链接到第二个驱动器上的相应目录。也许不是一个最优雅的解决方案,但它有时对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.