项目场景:
今天测试又过来搞我,说平台的上传文件功能突然不能用了,上个月都测试得好好的
问题描述:
查看了系统服务日志,看到了一个错误,错误的意思是某个临时目录失效了,不存在了。如下
org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request;
nested exception is java.io.IOException: The temporary upload location
[/tmp/tomcat.133774185444442042.80/work/Tomcat/localhost/ROOT] is not valid
org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest
(StandardMultipartHttpServletRequest.java:122) org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.
原因分析:
从错误/tmp/tomcat.133774185444442042.80/work/Tomcat/localhost/ROOT is not valid 可知是该目录下的某个目录已经不存在了,这是由于平台长时间没有使用上传文件功能,springboot启动会创建一个临时目录,如果不使用,会被linux系统回收删除
解决方案:
解决方案一:重启服务(线上不推荐)
解决方案二:启动时增加参数-Djava.io.tmpdir=自定义目录
解决方案三:自定义tomcat目录
server:
tomcat:
basedir: /data/java/config/tmp
解决方案四:使用mkdir -p 命令手动创建该不存在的目录