Spring Boot 報500

具體錯誤爲:The temporary upload location [/tmp/tomcat.4863972233331938549.8890/work/Tomcat/localhost/ROOT] i...。java

出現的場景:linux

   項目開發完之後, 就上線投入使用了. 運行了一個多月. 一次用到上傳 excel 功能的時候, 忽然就不能用了, 打開控制檯, 發現後端接口在報500 的錯誤. 因而就去查看服務端日誌. 發現了這個異常.後端

緣由:centos

   使用 java -jar 方式啓動 SpringBoot 應用時, 會在 /tmp 目錄下生成 tomcat.[隨機字符].[port] 的臨時文件,
上傳到Linux 的文件會先在此目錄下生成臨時文件, 而linux系統有一個機制, 會在臨時目錄長時間沒有訪問的狀況下( centos 7 /tmp 默認10天, var/tmp 默認30 天), 自動清理目錄下的文件.
能夠經過 vi /usr/lib/tmpfiles.d/tmp.conf 命令查看, 以下圖:tomcat

 
 

 出現以上問題的本質, 就是由於對應的臨時文件被刪掉致使的.spa

解決方法:日誌

  1. 能夠重啓應用, 這時候,會從新生成一個新的臨時文件, 不過過段時間, 問題還會發生, 不推薦使用.
  2. 在boot 項目中, 修改tomcat的臨時路徑 (強烈推薦):
server.tomcat.basedir=/home/temp

  今後媽媽不再用擔憂文件上傳失敗了 -- victoryexcel

相關文章
相關標籤/搜索