Linux下springboot+undertow+NoSuchFileException之解决
摘要:运行了好久的一个系统springboot+undertow架构的,用户突然反馈文件上传出问题了,怀着不可能的心态看了下错误日志,提示有一个临时目录找不到NoSuchFileException: /tmp/undertow。于是度娘了下,发现了问题所在。
前言:运行了好久的一个系统springboot+undertow架构的,用户突然反馈文件上传出问题了,怀着不可能的心态看了下错误日志,提示有一个临时目录找不到NoSuchFileException: /tmp/undertow。于是度娘了下,发现了问题所在。
环境:Linux、springboot、undertow
问题:文件上传报错
java.lang.RuntimeException: java.nio.file.NoSuchFileException: /tmp/undertow.1307744715448028781.4432/undertow5065267238966800211upload at io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.beginPart(MultiPartParserDefinition.java:261) ~[undertow-core-2.1.0.Final.jar:2.1.0.Final] at io.undertow.util.MultipartParser$ParseState.headerName(MultipartParser.java:208) ~[undertow-core-2.1.0.Final.jar:2.1.0.Final] at io.undertow.util.MultipartParser$ParseState.parse(MultipartParser.java:123) ~[undertow-core-2.1.0.Final.jar:2.1.0.Final] at io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.parseBlocking(MultiPartParserDefinition.java:232) ~[undertow-core-2.1.0.Final.jar:2.1.0.Final] at io.undertow.servlet.spec.HttpServletRequestImpl.parseFormData(HttpServletRequestImpl.java:837) ~[undertow-servlet-2.1.0.Final.jar:2.1.0.Final] at io.undertow.servlet.spec.HttpServletRequestImpl.getParameterMap(HttpServletRequestImpl.java:789) ~[undertow-servlet-2.1.0.Final.jar:2.1.0.Final]
错误原因
在Linux系统中,Spring Boot应用以java -jar命令启动时,会在操作系统的/tmp目录下生成一个tomcat(或undertow),上传的文件先要转换成临时文件保存在这个文件夹下面。由于临时/tmp目录下的文件,在长时间(10天)没有使用的情况下,就会被系统机制自动删除掉。所以如果系统长时间没有使用到临时文件夹,就可能导致上面这个问题。
问题解决
修改配置文件application.properties,增加一项配置
spring.servlet.multipart.location=/tmp/undertow
除非注明,文章均为草根java原创,转载请注明本文地址:
https://www.caogenjava.com/detail/116.html
上一篇:将java文件批量转换为UTF-8格式
下一篇:解决navicat导入excel数据日期是1900年的问题
相关链接
-
1微信开发errcode:45015,errmsg:response out of time limit之完美解决
-
2archive is not a ZIP archive之解决
-
3火狐每次启动都弹出迅雷提示下载openh264之解决
-
4Eclipse中提示Could not find the main class之解决
-
5以小米6为例图说安卓手机如何安装谷歌四件套
-
6在微信中调用外部浏览器实现文件下载之解决
-
7java web项目代码不报错但是项目左上角有个红叉之解决
-
8Eclipse中svn资源库中文路径乱码解决
-
9万能方法用指定浏览器打开桌面上的网页快捷方式
-
10论坛注册:用户名包含被系统屏蔽的字符之完美解决
热门排行榜
-
1微信开发errcode:45015,errmsg:response out of time limit之完美解决
-
2archive is not a ZIP archive之解决
-
3火狐每次启动都弹出迅雷提示下载openh264之解决
-
4Eclipse中提示Could not find the main class之解决
-
5XML document structures must start and end within the same entity报错解决
-
6以小米6为例图说安卓手机如何安装谷歌四件套
-
7在微信中调用外部浏览器实现文件下载之解决
-
8U盘安装CentOS 7终极方案,简单有效
-
9POI合并单元格时CellRangeAddress类提示过时之解决
-
10java web项目代码不报错但是项目左上角有个红叉之解决