RestClientException无法提取响应spring mvc

时间:2012-05-10 20:39:33

标签: spring rest spring-mvc dispatcher

我正在尝试通过restTemplate连接到服务器端以便检索xml。但我正在采取RestClientException和此消息:“无法提取响应:没有为响应类型[frontend.model.Registration]和内容类型[application / xml]找到合适的HttpMessageConverter” 在dispatcher-servlet中我写这个:

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
 <property name="mediaTypes">
    <map>
        <entry key="xml" value="application/xml"/>
        <entry key="atom" value="application/atom+xml"/>
        <entry key="html" value="text/html"/>
    </map>
 </property>
 <property name="viewResolvers">
    <list>
        <bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
    </list>
 </property>

之后我添加了这个:

  <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/>

此行也出现例外情况:3

 ResponseEntity<Registration> result = restTemplate.exchange("http://www.../ckp/user/{id}",
                    HttpMethod.GET, entity, Registration.class, id);

我现在无法解决问题..我想添加ViewResoler和MessageConverter我不知道哪个解析器和哪个转换器。任何人都可以提出尝试吗? 我应该在disptcher servlet上添加一些内容吗?我应该添加一个库吗? 我的模型类是pojo,它包含jaxb注释。

1 个答案:

答案 0 :(得分:2)

您需要将xml消息转换器bean添加到RestTemplate bean定义中。这就是我使用的:

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
    <property name="messageConverters">
        <list>
            <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.FormHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
        </list>
    </property>
</bean>

不要忘记将restTemplate bean注入您的类(通过xml或注释)。

编辑:在您调用RestTemplate的类中,添加如下字段:

@Inject
private RestTemplate restTemplate;