java post 500_Post请求form-data格式时请求返回500的问题
問題描述:測試反饋說系統所有的接口,采用post請求,數據格式用form-data時,所有的接口不能成功調用,但使用application/x-www-form-urlencoded或者application/json則沒有問題。使用Postman測試,響應如下:
{
"timestamp": 1532932938640,
"status": 500,
"error": "Internal Server Error",
"exception": "org.springframework.web.multipart.MultipartException",
"message": "Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.8933035133061590431.8060/work/Tomcat/localhost/ROOT] is not valid"
}
其實看到這個,問題就已經很明顯了,就是/tmp/tomcat.8933035133061590431.8060/work/Tomcat/localhost/ROOT這個目錄找不到。然后手動創建了這個目錄,就恢復正常了。
下面看看為什么會出現這個問題
SpringBoot應用服務在啟動(java -jar?命令啟動服務)的時候,會在操作系統的/tmp目錄下生成一個tomcat*的文件目錄,上傳的文件先要轉換成臨時文件保存在這個文件夾下面。
既然是這樣,那我們解決的方法就有以下幾種了:
像上面一樣,手動創建這個目錄
重啟應用
配置文件中指定tomcat的臨時目錄,這樣就不怕系統自動清理tmp了。配置如:server.tomcat.basedir: /data/tomcat/temp。
問題到這里已經算是解決了,下面是關于form-data的一篇文章
轉載至鏈接:https://my.oschina.net/u/2424727/blog/1919777
總結
以上是生活随笔為你收集整理的java post 500_Post请求form-data格式时请求返回500的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue 封装dialog_element
- 下一篇: 为什么姚贝娜去世会引起这么大的反响?