Spring Boot - /tmp/tomcat.*.8080/work/Tomcat/localhost/ROOT/upload_*

Spring Boot - /tmp/tomcat.*.8080/work/Tomcat/localhost/ROOT/upload_*

  • 问题描述
    • 1>解决方式
    • 2>解决方式

问题描述

记得前段时间客户端的同事反馈调用接口失败,在服务器上发 错误日志(大概格式)为:/tmp/tomcat..8080/work/Tomcat/localhost/ROOT/upload_
这个错误日志里提到的path为上传的文件的临时所需的临时文件

1>解决方式

当时我这边提供的服务并没有涉及到直接基于本服务上传的业务,均是普通的get post接口,调用方反馈也只有一个接口报错;
后来经问题排查发现,调用方调用接口时http header 设置为 Content-Type:multipart/form-data 导致出现了问题(原理很模糊,就不写了),这里把Content-Type换成正确的就可以了

2>解决方式

如果服务需要这个临时文件,由于默认是在 /tmp下,所以这个path会被定时删除;
so 需要手动指定临时文件存放的路径:

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

备忘

你可能感兴趣的:(SpringBoot,异常解决Mark)