【日常踩坑】導出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