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

无法提取响应:未找到合适的HttpMessageConverter

公冶安怡
2023-03-14

我正在写一个Springmvc应用程序(Spring新手),它必须调用Rest服务。我有其余的服务部署在我的VM(weblogic 10.3.6在Linux)和我写的应用程序是在我的本地笔记本电脑weblogic(10.3.6在Windows 8.1)。

当我尝试调用rest服务时,restservice应用程序的请求正常,但响应失败,并显示以下消息

org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.myclass.Acct] and content type [application/json;charset=UTF-8]
        at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:110)
        at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:572)

我正在初始化控制器中的其余客户端

Class1 ccc = new Class1();
Client client = new Client("REST URL","key","key1","USR",ccc);
client.getService("String"));

在实际的客户端中,调用rest服务如下所示

Acct acct1 = restClient.getRestTemplate().getForObject("URL", Acct.class, "USR");

我得到的错误在上面这一行。我不知道如何设置响应类型。当我将Acct.class更改为String时。类并将Acct acct1添加到对象acct1,然后它就可以工作了。

我需要在我的dispatcher-servlet.xml中为响应类型json设置任何东西吗?让我知道是否需要任何其他配置来使此工作。我确实看了与此相关的其他帖子,但没有帮助。谢谢。

共有1个答案

符棋
2023-03-14

谢谢你的帮助。我已经解决了这个问题,它现在正在发挥作用。

我做了以下更新:

在我的pom里。xml

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.5.3</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.5.3</version>
</dependency>

在我的调度员servlet里

<!-- Configure to plugin JSON as request and response in method handler -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="jsonMessageConverter"/>
            </list>
        </property>
    </bean>

    <!-- Configure bean to convert JSON to POJO and vice versa -->
    <bean id="jsonMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    </bean> 

在我的代码(Acct类)

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
...........
..........
 @JsonIgnore
 @JsonProperty(value = "........")
 public Set getMethod()
 {
     return this.............;
 }

现在,我可以从rest服务中获得结果。

谢谢。

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

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

  • 我正在尝试使用spring for Android从REST服务中检索一些数据。但是我遇到了问题。我也在使用Robospice——因此有一种类似这样的方法: 不幸的是,这不起作用。我将引发以下异常: 现在,基于我的谷歌搜索,我觉得我需要添加一个消息转换器。我只是不确定我需要哪个消息转换器,或者在哪里添加它?

  • 我试图让一个Spring CloudNetflixFaignes客户端通过HTTP获取一点JSON并将其转换为对象。我一直得到这个错误,而不是: 组织。springframework。网状物客户RestClientException:无法提取响应:未找到响应类型[class io.urig.checkout.Book]和内容类型[application/json;charset=UTF-8]的合适

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

  • 我得到这个例外 组织。springframework。网状物客户RestClientException:无法提取响应:未找到响应类型[AnalyticsResponse]和内容类型[application/json;charset=UTF-8]的合适HttpMessageConverter 仅在我的junit测试用例中(Restendpoint可以正常工作),如果我的DTO包含一个以用户定义的类作