easyexcel 导入导出

Caused by: java.lang.IllegalStateException: java.nio.file.NoSuchFileException: /tmp/917b5799-7080-4e92-a191-11373632589e/poifiles/poi-sxssf-sheet5775847353710241119.xml

at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:696)

at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:273)

at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:237)

at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:212)

at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:187)

at com.alibaba.excel.util.WorkBookUtil.createWorkBook(WorkBookUtil.java:40)

at com.alibaba.excel.context.WriteContextImpl.<init>(WriteContextImpl.java:96)

... 135 common frames omitted

原因分析:

在 Linux 系统中,Spring Boot 应用以 java -jar 命令启动时,会在操作系统的 /tmp 目录下生成一个 tomcat(或 undertow )临时目录,上传的文件先要转换成临时文件保存在这个文件夹下面。由于临时 /tmp 目录下的文件,在长时间(10天)没有使用的情况下,系统执行了 tmp 目录清理服务(systemd-tmpfiles-clean.service),导致 /tmp/undertow...8090 文件被清理,然而在上传的时候,undertow 服务器需要创建/tmp/undertow...8090/undertow...upload 临时文件,但是调用 Files.createFile(...) 的时候就会发现找不到父目录,才导致了以上的错误。

解决方案:

在项目中 applicaiton.yml 中添加配置 :

spring:

servlet:

multipart:

location: /home/tmp

手动指定目录后,必须保证该目录存在,并有读写的权限,创建该目录 mkdir -p /home/tmp

原文链接:https://blog.csdn.net/qq_41814311/article/details/127191377

相关推荐
yivifu5 分钟前
精益求精,支持处理嵌套表格的Word表格转HTML表格
开发语言·c#·word
沐知全栈开发6 分钟前
PHP MySQL WHERE 子句详解
开发语言
糖纸风筝6 分钟前
Java指南:eclipse、java-activemq与测试验证
java·开发语言·学习
小坏讲微服务9 分钟前
整合Spring Cloud Alibaba与Gateway实现跨域的解决方案
java·开发语言·后端·spring cloud·云原生·gateway
码上成长35 分钟前
<script setup> 实战模式:大型组件怎么拆?
开发语言·javascript·vue.js
程序员爱钓鱼44 分钟前
Python 实战:如何读取多格式 Excel 并实现跨表匹配合并(支持 XLS / XLSX)
后端·python·面试
程序员爱钓鱼1 小时前
Python编程实战:实现一个 Excel 批量处理工具(桌面实用脚本)
后端·python·ipython
Solyn_HAN1 小时前
Python 生信进阶:Biopython 库完全指南(序列处理 + 数据库交互)
python·生物信息学·biopython
九河_1 小时前
解决pip install gym==0.19.0安装失败问题
开发语言·python·pip·gym
红豆诗人1 小时前
C语言进阶知识--文件操作
c语言·开发语言·文件操作