org.springframework.web.client.RestClientException:无法提取响应:

我正在创建一个从服务器上消耗json的restful API。 但我得到了follexception:

org.springframework.web.client.RestClientException:无法提取响应:在org.springframework上没有为响应类型[[Lexamples.dto.DummyDTO;]和内容类型[text / json; charset = utf-8]找到合适的HttpMessageConverter。 org.springframework.web.client.RestTemplate.execute(RestTemplate.java: 409)atg.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:207)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun位于org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite $ PojoMachedMethodSite.invoke(PojoMetaMethodSite.java)的java.lang.reflect.Method.invoke(Method.java:597)中的.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) :189)在org.codehaus.groovy.runtime.calls 在org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)的org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite。)中的ite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)。 java:108)at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)

代码段:

List<HttpMessageConverter> msgConverters = restTemplate.getMessageConverters(); msgConverters.add(new MappingJacksonHttpMessageConverter()); restTemplate.setMessageConverters(msgConverters); DummyDTO[] dummy= restTemplate.getForObject(URI, DummyDTO[].class); 

控制器方法代码:

 public UserDTO[] getUserList(){ List acceptableMediaTypes = new ArrayList(); acceptableMediaTypes.add(MediaType.APPLICATION_JSON); // Set the Accept and Content type header HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); headers.setAccept(acceptableMediaTypes); HttpEntity entity = new HttpEntity(headers); // Add the Jackson message converter List<HttpMessageConverter> msgConverters = restTemplate.getMessageConverters(); msgConverters.add(new MappingJacksonHttpMessageConverter()); restTemplate.setMessageConverters(msgConverters); // Make the HTTP GET request, marshalling the response from JSON to an array of Users ResponseEntity responseEntity = restTemplate.exchange("http://server.com",HttpMethod.GET, entity, UserDTO[].class); return responseEntity.getBody(); } 

请告诉我哪里出错了

看起来您更改了请求的内容类型,但“application / json”必须位于响应标头中,并且您仍然具有相同exception的事实告诉您在响应中有错误的媒体类型“text / json” 在HTTP中没有这样的媒体类型 。 只需看看restTemplate.exchange("http://server.com",HttpMethod.GET, entity, UserDTO[].class); 应该有问题。