我正在写一个必须调用rest服务的spring mvc应用程序(Spring newbie)。我已经在VM(Linux中的weblogic 10.3.6)中部署了其余服务,而我编写的应用程序在本地笔记本电脑weblogic(Windows 8.1中的10.3.6)中。

当我尝试调用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"));


在实际的客户中,“休息服务”呼叫看起来像这样

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


我收到的错误在上面的行中。我不确定如何设置响应类型。当我将Acct.class更改为String.class并将Acct acct1更改为Object acct1时,它就会起作用。

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

最佳答案

谢谢您的帮助。我已经解决了这个问题,现在可以正常工作了。

我进行了以下更新:

在我的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.............;
 }


现在,我能够从其余服务中获得结果。

谢谢。

关于java - 无法提取响应:找不到合适的HttpMessageConverter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30655566/

10-08 22:15