2013-11-07 7 views
0

Я пытаюсь использовать один из веб-сервисов REST от облачного предприятия Terremark. Вот что я сделал: 1) Возьмите xsd и создайте артефакты jaxb 2) Отправьте вызов Rest, чтобы Restclient заполнил класс Organization.Несоответствие типа содержимого Springclient

ResponseEntity exchange = template.exchange("https://services.enterprisecloud.terremark.com/cloudapi/ecloud/organizations/", 
        HttpMethod.GET, 
        new HttpEntity(operation.getInput(), operation.getHeader()), 
        Organizations.class, 
        urlVariables); 

Ошибка я вижу

org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [com.dto.Organizations] and content type [application/vnd.tmrk.cloud.organization;type=collection] 

В приведенной выше ошибки, com.dto.Organizations генерируется Java-класс JAXB. Любые общие указатели Spring для решения этой проблемы также будут полезны.

P.S. Весной диспетчеру, я следующее:

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate"> 
    <property name="messageConverters"> 
     <list> 
      <bean id="marshallingHttpMessageConverter" 
      class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter" 
      p:marshaller-ref="jaxb2Marshaller" p:unmarshaller-ref="jaxb2Marshaller" /> 
      <bean class="org.springframework.http.converter.StringHttpMessageConverter"/> 
      <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/> 
      <bean class="org.springframework.http.converter.ResourceHttpMessageConverter"/> 
     </list> 
    </property> 
</bean> 

ответ

1

Я считаю, что вы будете нуждаться, чтобы установить тип содержимого обрабатывается вашим MarshallingHttpMessageConverter:

... 
<bean id="marshallingHttpMessageConverter" 
     class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter" 
     p:marshaller-ref="jaxb2Marshaller" p:unmarshaller-ref="jaxb2Marshaller" 
     p:supportedMediaTypes="application/vnd.tmrk.cloud.organization"/> 
... 

... что-то вдоль этих линий. Поддерживаемый по умолчанию тип носителя для MarshallingHttpMessageConverter - это просто application/*+xml.

Смежные вопросы