问题描述
SrpingBoot的项目,最近发现一个问题,部署到Linux服务器后,运行了一段时间后,上传文件的时候,出现这个错误:
org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.123456/work/Tomcat/localhost/ROOT] is not valid
到服务器上查了确实没有那个/tmp/tomcat.123456目录(数字是随机生成的)
问题解决
application.properties(或application.yml,稍作修改)增加配置文件项,如下:
server.tomcat.basedir=/tmp/tomcat
application.yml
server: # 服务器的HTTP端口,默认为80 port: 80 servlet: # 应用的访问路径 context-path: / tomcat: # tomcat的URI编码 uri-encoding: UTF-8 # tomcat最大线程数,默认为200 max-threads: 800 # Tomcat启动初始化的线程数,默认值25 min-spare-threads: 30 basedir: /tmp/tomcat
以上配置给springboot的tomcat指定路径,因为如果不指定,系统自动生成/tmp/tomcat.123456这样的临时路径,可能过一阵子会被Linux系统自动清理掉。
还碰到一个类似这个临时文件引起的问题:SpringBoot的MVC打包后的jar包在Linux上运行一段时间后,报错JSP: ClassNotFoundException问题解决
文章评论