Spring Framework 6 では Apache HttpClient 4.x から削除された HttpComponentsClientHttpRequestFactory.など、このファクトリーに依存するコンポーネントがあります RestTemplate を使用しなければならなくなった Apache HttpClient 5.xを使用している org.apache.hc.* パッケージで提供される。
を使用する HttpClient 4.x などのクラスがあります CloseableHttpClient, HttpClient, RequestConfig、または HttpContext より org.apache.http.* Spring パッケージの HTTP クライアントインフラストラクチャ(コンストラクタ、メソッド呼び出し、または HttpComponentsClientHttpRequestFactoryを使うように更新する必要がある HttpClient 5.x に相当する。
の以下のメソッドとコンストラクタを見直す HttpComponentsClientHttpRequestFactory HttpClient 4.x APIを参照しないようにする:
HttpComponentsClientHttpRequestFactory(HttpClient)setHttpClient(HttpClient)getHttpClient()mergeRequestConfig(RequestConfig)postProcessHttpRequest(HttpUriRequest)createHttpUriRequest(HttpMethod, URI)createHttpContext(HttpMethod, URI)createRequestConfig(Object)setHttpContextFactory(BiFunction)次の例は、フラグが立てられる無効な使用法を示している:
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
public class InvalidHttp4ClientUsage {
public void example() {
CloseableHttpClient client = HttpClients.custom().build();
RestTemplate restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory(client));
}
}
次の例は、移行された有効な使用法を示している:
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
public class ValidHttpClientUsage {
public void example() {
CloseableHttpClient client = HttpClients.custom().build();
RestTemplate restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory(client));
}
}
詳しくは、以下のリソースを参照してください。