Erforderliche String-parameter nicht vorhanden ist mit dem Frühling RestTemplate

Ich habe Probleme beim posten 2 Parameter mit RestTemplate :

  • ein String
  • eine MultipartFile

Ich glaube nicht, dass es ein problem in meinem controller ist, weil es ist sehr basic. Es scheint, dass der controller nicht erhielt den Namen parameter. Könnten Sie mir sagen, was falsch in meinem code

Der controller (der Empfänger)

@RequestMapping(value="/fileupload", method=RequestMethod.POST)
public void handleFileUpload(@RequestParam("name") String fileUploadHandlerName,
                             @RequestParam("file") MultipartFile file)
{
    [...]
}

Der Rest-client (der Absender)

RestTemplate rest = new RestTemplate();
URI uri = new URI("http://127.0.0.1:7011/xxxxxxxx/admin/fileupload");

MultiValueMap<String, Object> parts = new LinkedMultiValueMap<String, Object>();
parts.add("name", "import_keys");
Resource file = new ClassPathResource("xmlFileImport/file.xml");
parts.add("file", file);

rest.postForLocation(uri, parts);

Der controller stackTrace

org.springframework.web.binden.MissingServletRequestParameterException:
Erforderliche String-parameter 'name' ist nicht vorhanden

Haben Sie versucht, diese version von postForLocation? public URI postForLocation(String url, Object request, Map<String,?> urlVariables) throws RestClientException
Kann ein Spring-controller-Griff multipart-requests, die einfach und bequem mit nur einer handler-Methode? Sie müssen irgendeine Art von resolver -, haben Sie eine?
Ich brauche nicht zu verwenden Map<String,?> urlVariables weil ich mich nicht übergeben, variable in der URL.
Sie waren richtig!!!! Ich habe nicht alle resolver. Ich habe gerade mit CommonsMultipartResolver und es funktioniert. Posten Sie Kommentare als Antwort und ich werde es akzeptieren. Dank
Ich bin froh, dass Sie es herausgefunden hat. Prüfen Sie, ob meine Antwort enthält alle details. Wenn nicht, können Sie fügen Sie Ihre eigene Antwort für die Zukunft auf.

InformationsquelleAutor TheEwook | 2013-04-26

Schreibe einen Kommentar