我创建了一个restful API,它将从服务器使用json。但是,我发现了FOLL异常:org.springframework.web.client.RestClientException:无法提取响应:
org.springframework.web.client.RestClientException:无法提取响应:没有合适HttpMessageConverter找到的响应类型[[Lexamples.dto.DummyDTO;]和内容类型[ (org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:84) at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:454) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:409) at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:207) at sun.reflect.NativeMethodAccessorImpl.invoke0(纳特IVE方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在java.lang.reflect.Method.invoke(Method.java :597) 在org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite $ PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:189) 在org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.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<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
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<Object>(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<UserDTO[]> responseEntity = restTemplate.exchange("http://server.com",HttpMethod.GET, entity, UserDTO[].class);
return responseEntity.getBody();
}
请告诉我,我要去哪里错了
尝试返回类型为application/json而不是text/json,并提供控制器代码。 – rishman 2015-03-02 18:03:08
@rishman要将内容类型更改为application/json,我对现有方法进行了更改。仍然得到相同的错误。我编辑了我的帖子以包含控制器代码 – Manisha 2015-03-03 06:19:32