I am using Spring Boot 1.5.13 version.
I got the exception message like below.
Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.4296537502689403143.5000/work/Tomcat/localhost/ROOT] is not valid
I founded out this issue in Spring Github Issues. https://github.com/spring-projects/spring-boot/issues/9616
But I still have questions of that.
- I am not using File Upload things in my app. But the log says that "Could not parse multipart servlet request" why is that? (I got the exception when my app uses RestTemplate (Post method)
- To solve the exception, I rebooted my app but It did not work right away. Although i rebooted my app, it had referenced the tomcat directory which was not exist. After a day after rebooting, it worked. I guess the directory was cached in somewhere in Spring or else..?
Please Help me out!
Just restart your application in the server. It is a bug between spring and tomcat servers. Once the application restarts it consume a temp directory in the server.
For me it was using the correct dependency (if using java/maven)
You can set the multipart location in application.yml:
Update
As per comment by Vivek Sethi above property didn't work for me but the below one.
What I did to solve the issue was to relaunch the application adding
-java.tmp.dir=/path/to/application/temp/
and creating a/temp/
folder in my application folder.You maybe encode the form body of the POST request by Content-Type: multipart/form-data http header .
You should send a Content-Type: application/x-www-form-urlencoded POST
This Issue was fixed a couple of days ago.
Spring Boot: 2.1.4 or 1.5.20
Issue: https://github.com/spring-projects/spring-boot/issues/9616
https://github.com/MeiSign/Copy-Pasta/commit/1200fb353a48a3d0c92038dee7cced7cebf3acfe