title: SpringTemplate no suitable HttpMessageConverter found for response type
body: <p>I am getting the following error while using spring rest template but i have defined jackson for json responses.</p>
  
  <p>As well when I query to the url with rest client i get a good response.</p>
  
  <blockquote>
  <pre><code>org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [tripadvisor.TripAdvisorResponse&lt;java.util.List&lt;model.external.tripadvisor.TripAdvisorLocation&gt;&gt;] and content type [text/javascript;charset=utf-8]
  at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:109)
  at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:812)
  at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:796)
  at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:576)
  at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:544)
  at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:495)
  at sync.service.location.LocationServiceImpl.syncTripAdvisorLocations(LocationServiceImpl.java:69)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:483)
  at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
  at org.springframework.aop.interceptor.AsyncExecutionInterceptor$1.call(AsyncExecutionInterceptor.java:110)
  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  at java.lang.Thread.run(Thread.java:745)
  </code></pre>
  </blockquote>
  
  <p>rest template configuration:</p>
  
  <blockquote>
  <pre><code>@Bean
  public ClientHttpRequestFactory httpRequestFactory() {
      return new HttpComponentsClientHttpRequestFactory(httpClient());
  }
  @Bean
  public RestTemplate restTemplate() {
      RestTemplate restTemplate = new RestTemplate(httpRequestFactory());
      List&lt;HttpMessageConverter&lt;?&gt;&gt; converters = restTemplate.getMessageConverters();
      for (HttpMessageConverter&lt;?&gt; converter : converters) {
          if (converter instanceof MappingJackson2HttpMessageConverter) {
              MappingJackson2HttpMessageConverter jsonConverter = (MappingJackson2HttpMessageConverter) converter;
              jsonConverter.setObjectMapper(new ObjectMapper());
          }
      }
      return restTemplate;
  }
  @Bean
  public HttpClient httpClient() {
      PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
      CloseableHttpClient closeableHttpClient = HttpClientBuilder.create().setConnectionManager(connectionManager).build();
      connectionManager.setMaxTotal(DEFAULT_MAX_TOTAL_CONNECTIONS);
      connectionManager.setDefaultMaxPerRoute(DEFAULT_MAX_CONNECTIONS_PER_ROUTE);
      connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost("facebook.com")), 20);
      connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost("twitter.com")), 20);
      connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost("linkedin.com")), 20);
      connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost("viadeo.com")), 20);
      connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost("api.tripadvisor.com")), 20);
      return closeableHttpClient;
  }
  </code></pre>
  </blockquote>