Định cấu hình Tomcat để sử dụng thư mục tạm thời khác để tải lên tệp


13

Ví dụ Tomcat của tôi đang ngồi trên một ổ đĩa có ít không gian còn lại. Ứng dụng tôi đang chạy không di chuyển tệp tải lên khỏi máy chủ và vào NAS. Tuy nhiên, trong quá trình tải lên, Tomcat giữ tệp này cục bộ, có lẽ trong thư mục / temp.

Máy chủ của tôi có ổ dữ liệu thứ hai với nhiều không gian nơi tôi muốn chuyển thư mục tạm thời này sang. Làm cách nào tôi có thể định cấu hình Tomcat để nó sử dụng thư mục tạm thời trên ổ đĩa khác, tức là. Làm thế nào tôi có thể di chuyển thư mục này?

Chỉnh sửa: Tôi đang chạy máy chủ Windows 2k3. Tôi đã thử thiết lập varv CATALINA_TMPDIR, nhưng Tomcat dường như bỏ qua nó.

Giải pháp: Tôi đang sử dụng ứng dụng "Monitor Tomcat" vượt qua

-Djava.io.tmpdir = C: \ some \ default \ thư mục

đến JVM. Điều này đã ghi đè lên biến môi trường mà tôi đã thiết lập. Bạn có thể tìm thấy nó trong Java > Tùy chọn Java

Thay đổi điều này đã khắc phục vấn đề của tôi.

Câu trả lời:


19

Các java.io.tmpdirtrong Tomcat được thiết lập để $CATALINA_BASE/temp. Bạn có thể thay đổi nó bằng cách đặt$CATALINA_TMPDIR biến môi trường trước khi chạy startup.shcho Tomcat.

Từ catalina.sh:

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

Điều này dường như chỉ hoạt động cho các hệ thống * nix, vì khi tôi thử cài đặt CATALINA_TMPDIR env var trong Windows 2k3 và khởi động Tomcat, nó tiếp tục sử dụng thư mục tạm thời mặc định.
RCampbell

Nếu bạn đặt biến môi trường hệ thống trong Windows, bạn có thể cần phải khởi động lại trước khi nó có hiệu lực.
CoverosGene

Trên Ubuntu, bạn có thể đặt thư mục tạm thời trong/etc/default/tomcat7
beldaz

3

Trên cửa sổ nếu bạn đang chạy Tomcat như một dịch vụ bạn có thể có một khóa tương tự như

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

Đặt giá trị chuỗi options(nhấp đúp để mở) ở cuối hiện tại là:

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

Điều này làm việc cho tôi.


1

Nếu bạn đang dùng UNIX / Linux, bạn chỉ có thể liên kết thư mục tạm thời trên ổ đĩa thứ nhất đến thư mục tương ứng trên ổ đĩa thứ hai. Có thể không phải là một giải pháp thanh lịch nhất nhưng đôi khi nó làm việc cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.