2015-03-04 13 views
7

मेरा बाकी सर्वर प्रतिक्रिया उत्पन्न कर रहा है जब मैंने इसे बाकी क्लाइंट सॉफ़्टवेयर के साथ बुलाया। जब मैं ऊपर उल्लिखित resttemplate कोड के साथ कॉल करता हूं, तो सर्वर प्रतिक्रिया उत्पन्न करता है (प्रिंट लॉग) लेकिन resttemplate कुछ भी नहीं करता है (कॉल के बाद कोई अगली पंक्ति निष्पादित नहीं होती है) और आंतरिक त्रुटि प्रिंट करता है।वसंत आराम प्रतिक्रिया प्राप्त करने में समस्या

यह इस तरह restTemplate

के माध्यम से
ResponseEntity<Map> response1 = restTemplate.getForEntity(finalUrl.toString(), Map.class); 
+0

के लिए काम करता है आप आंतरिक त्रुटि के बारे में कोई भी अतिरिक्त विवरण है? –

उत्तर

14

कोशिश में वाइल्डकार्ड मानचित्र के बजाय ParameterizedTypeReference उपयोग करने के लिए मैं यह बोल रहा हूँ है अपने सर्वर

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

में विधि है। यह ऐसा दिखना चाहिए।

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

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

यह एक उदाहरण है कि मुझे

@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); 
} 
संबंधित मुद्दे