当前位置: 首页 > 知识库问答 >
问题:

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

司空坚
2023-03-14

我正在创建一个restful API,它将使用来自服务器的json。但我得到了以下例外:

组织。springframework。网状物客户RestClientException:无法提取响应:未找到响应类型[[Lexamples.dto.DummyDTO;]的合适HttpMessageConverter和org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:84)org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:454)org.springframework.web.client.RestTemplate.execute(RestTemplate.java:409)上的内容类型[text/json;charset=utf-8]位于sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)的org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:207)位于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)org.codehaus.groovy.runtime.callsite.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)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();
        }

请告诉我哪里出了问题

共有1个答案

羊舌成周
2023-03-14

看起来你为请求更改了内容类型,但是“应用程序/json”必须在响应标题中,而且你仍然有相同的异常这一事实表明你在响应中有错误的媒体类型“文本/json”,在响应中没有这样的媒体类型HTTP.看看restTemplate.exchange("http://server.com",Httpmethod的实现。GET,实体,UserDTO[]. class);应该有问题。

 类似资料:
  • 我在生成简单应用程序时收到此错误消息 正在从以下位置获取用户信息:http://localhost:9999/uaa/user无法获取用户详细信息:类组织。springframework。网状物客户RestClientException,无法提取响应:未找到响应类型[interface java.util.Map]和内容类型[text/html;charset=UTF-8]的合适HttpMessa

  • 问题内容: 我正在创建一个宁静的API,它将使用服务器中的json。但是我遇到了异常: org.springframework.web.client.RestClientException:无法提取响应:在org.springframework找不到响应类型为[[Lexamples.dto.DummyDTO;]]和内容类型为[text / json; charset = utf-8]的HttpMe

  • 我正在写一个Springmvc应用程序(Spring新手),它必须调用Rest服务。我有其余的服务部署在我的VM(weblogic 10.3.6在Linux)和我写的应用程序是在我的本地笔记本电脑weblogic(10.3.6在Windows 8.1)。 当我尝试调用rest服务时,restservice应用程序的请求正常,但响应失败,并显示以下消息 我正在初始化控制器中的其余客户端 在实际的客户

  • 我是新的Spring集成和工作在Spring集成超文本传输协议模块为我的项目要求。我从出站网关作为超文本传输协议客户端发送请求。我试图向服务器发起一个请求,服务器应该用我的设置值返回消息负载。我正在将对象转换为JSON,用于发送到服务器我正在从客户端(HttpClientDemo)向服务器端的入站网关发送请求。为此,我将我的对象转换成JSON,然后将JSON字符串转换为客户端的对象,在那里执行一些

  • 使用curl命令: 我收到一个JSON响应: 我把响应保存在一个txt文件里然后用jackson解析一切正常 我假设我应该使用RestTemplate得到相同的结果,但事实并非如此 我得到了一个错误 我尝试设置contentType: 但后来我发现了一个编译错误 我还尝试在Jackson消息转换器中添加一个 但是后来我得到了这个错误: 我还尝试添加了这个类 但是我得到了错误:

  • 我有以下几点建议: 当我对它执行cucumber测试时,我得到以下异常: 我有一些其他的测试和其他具有相同注释的POJO,它们工作起来没有任何问题。我真的一点也不知道出了什么问题。 感谢任何建议!