Использование пар ключ-значение с использованием spring resttemplate

В идеале мне просто нужен список строк или Hashmap String,String :

List<String> = restTemplate.getForObject(url, List.class, urlVariables);

Однако я получаю сообщение об ошибке Не удалось извлечь ответ: не найден подходящий HttpMessageConverter для типа ответа.

Я могу получить доступ к restful API с помощью restclient и получить следующее:

Content-Type    text/javascript; charset=iso-8859-1

тело ответа:

[{"name":"lemons"},{"name":"pears"},{"name":"apples"}]

и мой restTemplate определяется следующим образом:

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

person NimChimpsky    schedule 21.06.2012    source источник


Ответы (2)


У меня нет подходящего проекта для тестирования, но попробуйте:

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
  <property name="messageConverters">
    <list>
      <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
        <property name="supportedMediaTypes" value="text/javascript" />
      </bean>
    </list>
  </property>
</bean>
person Xaerxess    schedule 21.06.2012

Я думаю, вы могли бы взглянуть на это:

https://spring.io/guides/gs/using-rest/

На этой странице написано:

Если вы видите сообщение об ошибке Не удалось извлечь ответ: не найдено подходящего HttpMessageConverter для типа ответа [класс hello.Quote], возможно, вы находитесь в среде, которая не может подключиться к серверной службе (которая отправляет JSON, если вы можете связаться с ней). Может быть, вы стоите за корпоративным прокси? Попробуйте установить для стандартных системных свойств http.proxyHost и http.proxyPort значения, подходящие для вашей среды.

Что в значительной степени то, что вы получаете. Я знаю, что первоначальный вопрос был еще в 2012 году, но, надеюсь, кто-то еще увидит это как возможное решение.

person jkilgrow    schedule 03.04.2018