当前位置: 首页 > 面试题库 >

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

宿丰
2023-03-14
问题内容

我正在创建一个宁静的API,它将使用服务器中的json。但是我遇到了异常:

org.springframework.web.client.RestClientException:无法提取响应:在org.springframework找不到响应类型为[[Lexamples.dto.DummyDTO;]]和内容类型为[text
/ json; charset =
utf-8]的HttpMessageConverter。位于org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:454)的web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:84)位于org.springframework.web.client.RestTemplate.execute(RestTemplate.java:
409)在org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:207)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl。org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite
$
PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:189)处java.lang.reflect.Method.invoke(Method.java:597)处的Java:25)
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)的.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)org.codehaus.groovy.runtime.callsite.AbstractCallSite.call
(AbstractCallSite.java:108),位于org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)在org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)处调用(PojoMetaMethodSite.java:53)在org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)处在org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)在org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)处调用(PojoMetaMethodSite.java:53)在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();
        }

请告诉我我要去哪里错了


问题答案:

看起来您更改了请求的内容类型,但是“ application /
json”必须在响应头中,并且您仍然具有相同的异常这一事实表明您在响应中使用了错误的媒体类型“ text /
json”,在HTTP中没有这样的媒体类型。只看restTemplate.exchange("http://server.com",HttpMethod.GET, entity, UserDTO[].class);那里应该有问题的实现。



 类似资料:
  • 我正在创建一个restful API,它将使用来自服务器的json。但我得到了以下例外: 组织。springframework。网状物客户RestClientException:无法提取响应:未找到响应类型[[Lexamples.dto.DummyDTO;]的合适HttpMessageConverter和org.springframework.web.client.HttpMessageConve

  • 我正在写一个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,它们工作起来没有任何问题。我真的一点也不知道出了什么问题。 感谢任何建议!

  • 问题内容: 安慰: 问题: 当我从类执行函数时,就会发生这种情况。这是怎么回事 问题答案: 如下更改查询: 否则如下: 中相应的比较 ,其中 子句是具有文字,而不是另一列。因此,必须在第一种情况下用引号引起来,或者在第二种情况下使用绑定变量。