我正在尝试通过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注释。
答案 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;