Requise paramètre de Chaîne n'est pas présente avec le Printemps RestTemplate

J'ai de la difficulté à poster 2 paramètres avec RestTemplate :

  • une Chaîne
  • un MultipartFile

Je ne pense pas qu'il y a un problème dans mon contrôleur parce que c'est très basique. Il semble que le contrôleur n'a pas reçu le nom de paramètre. Pourriez-vous me dire où est l'erreur dans mon code

Le contrôleur (le récepteur)

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

Le Reste client (l'expéditeur)

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);

Le contrôleur stackTrace

org.springframework.web.bind.MissingServletRequestParameterException:
Requise paramètre de Chaîne " nom " n'est pas présent

Avez-vous essayer cette version de postForLocation? public URI postForLocation(String url, Object request, Map<String,?> urlVariables) throws RestClientException
Peut un Ressort poignée du contrôleur multi-parties demande que facilement avec juste une méthode de gestionnaire? Vous avez besoin d'un certain type de résolveur, ne vous en avez un?
Je n'ai pas besoin d'utiliser Map<String,?> urlVariables parce que je ne passe pas toutes les variables dans l'URL.
vous avez eu raison! Je n'ai pas utiliser un résolveur. Je viens de l'utiliser CommonsMultipartResolver et il fonctionne. Vous postez des commentaires comme réponse et je vais l'accepter. Merci
Je suis content que vous avez compris. Vérifier si ma réponse contient tous les détails. Si non, vous pouvez ajouter votre propre réponse pour référence future.

OriginalL'auteur TheEwook | 2013-04-26