开发喵星球

若依使用Tomcat部署tmp目录异常(213)

在若依(Ruoyi)框架中使用Tomcat部署时,如果遇到/tmp目录异常的问题,可以按照以下步骤进行解决。这些步骤将帮助你设置一个稳定的临时目录,避免由于操作系统清理临时目录导致的问题。

具体原因:

首先,我们应该知道,对于http POST请求来说,它需要使用这个临时目录来存储post数据。
其次,因为该目录是挂在到/temp目录下的临时文件,那么对于一些OS系统,像centOS将经常删除这个临时目录,所有导致该目录不存在了

解决方案

1. 在 application.yml 文件中设置 multipart location

application.yml 文件中添加以下配置,将临时文件存储路径设置为 /data/upload_tmp

spring:
  http:
    multipart:
      location: /data/upload_tmp

2. 在 application.yml 文件中设置 Tomcat 基础目录

application.yml 文件中添加以下配置,将 Tomcat 的基础目录设置为 /tmp/tomcat

server:
  tomcat:
    basedir: /tmp/tomcat

3. 在配置文件中添加 MultipartConfigElement Bean

在配置类中添加以下 Bean 配置:

import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.servlet.MultipartConfigElement;

@Configuration
public class MultipartConfig {

    @Bean
    public MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setLocation("/tmp/tomcat");
        return factory.createMultipartConfig();
    }
}

4. 添加启动参数

在启动应用时添加 JVM 参数,设置临时目录路径:

-Djava.io.tmpdir=/path/to/application/temp/

确保 /path/to/application/temp/ 是一个存在且具有适当权限的目录。

使用命令行启动应用

java -Djava.io.tmpdir=/path/to/application/temp/ -jar ruoyi-admin.jar

通过以上步骤,可确保若依框架在使用Tomcat部署时,临时目录问题得到解决。设置自定义的临时目录路径,避免了操作系统清理默认临时目录 /tmp 导致的问题。

   
分类:Java/OOP 作者:无限繁荣, 吴蓉 发表于:2024-05-18 20:23:25 阅读量:108
<<   >>


powered by kaifamiao