Besoin d'aide sur RestTemplate postForObject() la méthode
- Je envoyer des données JSON à partir d'une méthode de service à l'autre en utilisant postForObject()
méthode.
J'ai vu un exemple sur RestTemplate
sur ce lien.
postForObject()
méthode a le format suivant:
User returns = rt.postForObject(uri, u, User.class, vars);
Ou
User returns = rt.postForObject(uri, u, User.class);
Je veux savoir que, après l'utilisation de postForObject()
méthode, si nous mettons en œuvre la méthode de service à accepter la User
objet, comment il va ressembler?
Dans mon projet, j'ai un code comme
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter());
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
String uri = "http://testcode.com/myapp/api/launchservices";
ServiceRequest request = new ServiceRequest();
request.setId(UUID.randomUUID().toString());
....
Je suis d'erreur à cette ligne:
ServiceRequest req = restTemplate.postForObject(uri, request, ServiceRequest.class);
lors de l'exécution de la présente, j'obtiens cette erreur mesage:
org.springframework.web.client.HttpClientErrorException: 400 Bad Request
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:88)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:537)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:493)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:452)
at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:302)
ma méthode de mise en œuvre est:
@RequestMapping(value = "/launchservices", method = RequestMethod.POST)
@ResponseBody
public boolean launchServices(@PathVariable ServiceRequest request) {
System.out.println("Request: "+request.toString());
return true;
}
Comment se débarrasser de cette? Ce sera l'URI?
OriginalL'auteur omjaijagdish | 2013-11-21
Vous devez vous connecter pour publier un commentaire.
J'ai eu la solution à ce problème.
Dans cet exemple,la méthode postForObject retourne un objet de la classe "ServiceRequest"
Donc, la méthode qui met en œuvre ce service avec le ci-dessus 'uri' doit retourner un objet de la classe ServiceRequest
Tout ce qu'il faut est, une légère modification dans la méthode de mise en œuvre ci-dessous
OriginalL'auteur omjaijagdish