2017-02-27 2 views
0

스프링 부트 애플리케이션에 CloseableHttpClient 유형의 빈을 정의하려고합니다. 하지만 여전히 빈을 찾을 수 없다는 오류가 발생합니다. com.MyConfiguration의 방법 restTemplate의스프링 부트 레스트 템플릿 - CloseableHttpClient

@Bean 
@Primary 
public RestTemplate restTemplate(RestTemplateBuilder builder, @Qualifier("pooledClient") CloseableHttpClient httpClient) { 
    return builder.requestFactory(new HttpComponentsClientHttpRequestFactory(httpClient)).build(); 
} 

@Bean 
public CloseableHttpClient httpClient() { 
    return HttpClientBuilder.create().build(); 
} 

매개 변수 1을 찾을 수 없습니다 유형의 콩 'org.apache.http.impl.client.CloseableHttpClient'을 요구했다.

작업 :

이 구성 유형의 콩 'org.apache.http.impl.client.CloseableHttpClient'을 정의하는 것이 좋습니다.

답변

2

CloseableHttpClient에 @Qualifier을 사용하고 있지만 구성에서 해당 한정자와 일치하는 bean을 정의하지 않았습니다. 어느 쪽이든 당신은 빈 이름 pooledClient 선언

@Bean(name="pooledClient") 
public CloseableHttpClient httpClient() { 
    return HttpClientBuilder.create().build(); 
} 

을 아니면 @Qualifier 주석 제거 :

@Bean 
@Primary 
public RestTemplate restTemplate(RestTemplateBuilder builder, CloseableHttpClient httpClient) { 
    return builder.requestFactory(new HttpComponentsClientHttpRequestFactory(httpClient)).build(); 
} 
관련 문제