2012-10-04 19 views
10

İletim yöntemim çağrılıyor ancak Profilim boş. Bu yaklaşımın nesi yanlış? RestTemplate'i kullanmak için @Requestbody kullanmalı mıyım?RestTemplate yazısı varlık için

Profile profile = new Profile(); 
profile.setEmail(email);   
String response = restTemplate.postForObject("http://localhost:8080/user/", profile, String.class); 


@RequestMapping(value = "/", method = RequestMethod.POST) 
    public @ResponseBody 
    Object postUser(@Valid Profile profile, BindingResult bindingResult, HttpServletResponse response) { 

    //Profile is null 
     return profile; 
    } 
+0

Denetleyiciniz, 'RequestMapping' içindeki yolun 'kullanıcı' bölümünü içerecek şekilde açıklamalı mı? Senin metohd, ek denetleyici ek açıklamaları olmadan '/ user /' yanıtı vermeyecek olan, '/ 'işaret eder. –

+0

@ nicholas.hauschild Evet. Denetleyici yöntemine giriyorum. Sorun, profilin gerçek yöntemde boş olmasıdır. – pethel

cevap

10

profile nesne varlık oluşturma ve gönderme için benim çözüm sona erdi

MultiValueMap<String, Object> parts = new LinkedMultiValueMap<String, Object>(); 
parts.add("email", email); 

Object response = restTemplate.postForObject("http://localhost:8080/user/", parts, String.class); 
2

MultiValueMap hala @RestController boş nesne yayınlanmıştır benim için ama benim durumumda iyi bir başlangıç ​​noktası oldu bu şekilde inşa etmek zorunda böyle görünüyor:

HashedMap requestBody = new HashedMap(); 
requestBody.put("eventType", "testDeliveryEvent"); 
requestBody.put("sendType", "SINGLE"); 

HttpHeaders headers = new HttpHeaders(); 
headers.setContentType(MediaType.APPLICATION_JSON); 

// Jackson ObjectMapper to convert requestBody to JSON 
String json = new ObjectMapper().writeValueAsString(request); 
HttpEntity<String> entity = new HttpEntity<>(json, headers); 

restTemplate.postForEntity("/generate", entity, String.class);