场景还原:
新项目为了满足运营人员使用搭建的Boss系统,采用了SpringBoot2.0,并以Jar包的形式启动,第一次上线测试,完全正常,由于春节时隔10几天没有人登录过,后来同事反应登录的时候就报错了,查看日志信息:
message:Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.5735866935709960907.8010/work/Tomcat/localhost/ROOT] is not valid
Caused by: java.io.IOException: The temporary upload location [/tmp/tomcat.5735866935709960907.8010/work/Tomcat/localhost/ROOT] is not valid
原因分析:
在linux
系统中,springboot
应用服务再启动(java -jar 命令启动服务)的时候,会在操作系统的/tmp目录下生成一个tomcat*
的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下面。由于临时/tmp
目录下的文件,在长时间(10天)没有使用的情况下,就会被系统机制自动删除掉。所以如果系统长时间无人问津的话,就可能导致上面这个问题。
解决方案:
- 手动在/tmp下创建相应得文件夹(不推荐使用)
- 在 yml配置文件 中添加:
server:
tomcat:
basedir: /home/saysky/temp