I keep getting the following error
org.springframework.web.multipart.support.MissingServletRequestPartException: Request part 'model' not found.
When posting multipart request to spring mvc controller.
This is the request:
Accept:application/json, text/javascript, */*; q=0.01
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:4394941
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryK4y8t7mg2SNoYxC4
Cookie:SID=091f182f-5534-47c4-b0c1-8ca9c17e1f09
Host:localhost:8080
Origin:http://localhost:8080
Referer:http://localhost:8080/controller/home/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17
X-Requested-With:XMLHttpRequest
Request Payload
------WebKitFormBoundaryK4y8t7mg2SNoYxC4
Content-Disposition: form-data; name="model"
{"name":"kjkjk","description":"kkjkjk"}
------WebKitFormBoundaryK4y8t7mg2SNoYxC4
Content-Disposition: form-data; name="photo"; filename="IMG_1281.JPG"
Content-Type: image/jpeg
Controller
@RequestMapping(value = "/t")
public ResponseEntity<ResponseMessage> t(@CookieValue(value = "SID", required = true) String sessionId,
@RequestPart("model") CategoryModel model,
@RequestPart("photo") MultipartFile file)
{
return new ResponseEntity<ResponseMessage>(new ResponseMessage(200, "success"), HttpStatus.OK);
}
Model
package bla.bla.bla;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import org.codehaus.jackson.annotate.JsonBackReference;
import org.codehaus.jackson.annotate.JsonIgnore;
public class CategoryModel {
public CategoryModel(String id, String name, String description, CategoryModel parent) {
super();
this.name = name;
this.description = description;
this.id = id;
this.parent = parent;
}
public CategoryModel(String id, String name, String description, CategoryModel parent, List<CategoryModel> childrens) {
super();
this.name = name;
this.description = description;
this.id = id;
this.parent = parent;
this.childrens = childrens;
}
public CategoryModel()
{
}
public String id;
public String name;
public String description;
public String imageUrl;
public CategoryModel parent;
public List<CategoryModel> childrens = new ArrayList<CategoryModel>();
}
I have added controller and entity please do check and let me know where am I going wrong?
Thank you, James
I also had a similar problem and fortunately, this answer helped me to figure out what was wrong. As was mentioned there, the problem is not in your Java part. You have to change your Javascript logic which builds your CategoryModel on the client side. According to that answer your logic should look like as code which is shown below:
var file = ... // your file
var model = {
id: 'TestId'
name: 'TestName',
description: 'TestDesciption',
.... // other fields are ommited
};
var fd = new FormData();
fd.append('photo', file);
fd.append('model', new Blob([JSON.stringify(model)], { type: "application/json" }));
And with this code your exception should be fixed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With