【日常踩坑】导出excel临时目录没有写权限


 

【问题】导出excel发生异常,公司好多应用放在同一台服务器上,有应用 A B C D E F G H I J K L M N O P Q R S T

临时目录 /tmp/poifiles 这个文件夹被应用A创建, 所属用户为 A,用户组只有r-x权限,没有写权限

 

 

 

 

 

 

 

 

 

 

,export error request:ExportOrderRequest,error:{}
java.lang.RuntimeException: java.io.IOException: Permission denied
        at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:662)
        at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:679)
        at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:90)
        at com.abc.fb.cms.utils.excelUtil.Excel.createSheet(Excel.java:85)
        at com.abc.fb.cms.utils.ExcelSingleExport.<init>(ExcelSingleExport.java:34)
        at com.abc.fb.cms.wrap.ExportHelper.newExcelSingleExport(ExportHelper.java:144)
        at com.abc.fb.cms.wrap.ExportHelper.export(OrderExportHelper.java:85)
        at com.abc.fb.cms.controller.OrderController.lambda$export$0(OrderController.java:326)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Permission denied
        at java.io.UnixFileSystem.createFileExclusively(Native Method)
        at java.io.File.createTempFile(File.java:2024)
        at org.apache.poi.util.DefaultTempFileCreationStrategy.createTempFile(DefaultTempFileCreationStrategy.java:110)
        at org.apache.poi.util.TempFile.createTempFile(TempFile.java:66)
        at org.apache.poi.xssf.streaming.SheetDataWriter.createTempFile(SheetDataWriter.java:87)
        at org.apache.poi.xssf.streaming.SheetDataWriter.<init>(SheetDataWriter.java:70)
        at org.apache.poi.xssf.streaming.SheetDataWriter.<init>(SheetDataWriter.java:75)
        at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheetDataWriter(SXSSFWorkbook.java:330)
        at org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:80)
        at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:658)
        ... 11 common frames omitted 

 

 

【解决方式】 /tmp/poifiles  文件夹权限设置为 777  或者 把其他应用的临时目录改掉,不和其他应用的临时目录相同 -Djava.io.tmpdir=/abc-web/tmp


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM