2015-03-04 16 views
7

Il mio server di riposo genera una risposta quando l'ho chiamato con il software rest client. Quando lo chiamo con il codice resttemplate menzionato sopra, il server genera la risposta (log di stampa) ma resttemplate non esegue nulla (nessuna riga successiva viene eseguita dopo la chiamata) e stampa l'errore interno .Problema di springTemplate nel ricevere la risposta

questo è il metodo in mio assistente

@ResponseBody 
public ResponseEntity<Map<String, Object>> name(){...... 
... 
return new ResponseEntity<Map<String, Object>>(messagebody, HttpStatus.OK); 
} 

Questo è il modo in cui mi chiamo attraverso restTemplate

ResponseEntity<Map> response1 = restTemplate.getForEntity(finalUrl.toString(), Map.class); 
+0

Avete ulteriori dettagli circa l'errore interno? –

risposta

14

tenta di utilizzare ParameterizedTypeReference invece di caratteri jolly Map. Dovrebbe assomigliare a questo.

ParameterizedTypeReference<Map<String, Object>> typeRef = new ParameterizedTypeReference<Map<String, Object>>() {}; 

ResponseEntity<Map<String, Object>> response = restTemplate.exchange(finalUrl.toString(), HttpMethod.GET, null, typeRef); 
0

questo è un esempio che funziona per me

@RequestMapping(value = "/getParametros/{instancia}", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE) 
public ResponseEntity<String> getParametros(@PathVariable String instancia) 
{ 
    LOG.debug("REST. Obteniendo parametros del servidor " + instancia); 
    Map<String, String> mapa = parametrosService.getProperties(instancia); 
    HttpHeaders headers = new HttpHeaders(); 
    headers.add("Content-Type", "application/json; charset=UTF-8"); 
    headers.add("X-Fsl-Location", "/"); 
    headers.add("X-Fsl-Response-Code", "302"); 
    ObjectMapper mapper = new ObjectMapper(); 

    String s = ""; 
    try 
    { 
     s = mapper.writeValueAsString(mapa); 
    } catch (JsonProcessingException e) 
    { 
     LOG.error("NO SE PUEDE MAPEAR A JSON"); 
    } 

    if (mapa == null) 
     return new ResponseEntity<String>(HttpStatus.BAD_REQUEST); 

    return new ResponseEntity<String>(s, headers, HttpStatus.OK); 
} 
Problemi correlati