Update web services support to use ClientHttpRequestFactoryBuilder
Add a new `WebServiceMessageSenderFactory` factory interface to replace `HttpWebServiceMessageSenderBuilder`. The factory provides a general purpose way of creating `WebServiceMessageSender` instances, but most typically will be `ClientHttpRequestMessageSender` created from a `ClientHttpRequestFactoryBuilder`. A new `httpMessageSenderFactory` method has been added to the `WebServiceTemplateBuilder` class. This allows any sender to be plugged into the template. Closes gh-42886
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,7 +18,8 @@ package org.springframework.boot.docs.io.webservices.template;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import org.springframework.boot.webservices.client.HttpWebServiceMessageSenderBuilder;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
|
||||
import org.springframework.boot.webservices.client.WebServiceMessageSenderFactory;
|
||||
import org.springframework.boot.webservices.client.WebServiceTemplateBuilder;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -30,13 +31,11 @@ public class MyWebServiceTemplateConfiguration {
|
||||
|
||||
@Bean
|
||||
public WebServiceTemplate webServiceTemplate(WebServiceTemplateBuilder builder) {
|
||||
// @formatter:off
|
||||
WebServiceMessageSender sender = new HttpWebServiceMessageSenderBuilder()
|
||||
.setConnectTimeout(Duration.ofSeconds(5))
|
||||
.setReadTimeout(Duration.ofSeconds(2))
|
||||
.build();
|
||||
ClientHttpRequestFactorySettings settings = ClientHttpRequestFactorySettings.defaults()
|
||||
.withConnectTimeout(Duration.ofSeconds(2))
|
||||
.withReadTimeout(Duration.ofSeconds(2));
|
||||
WebServiceMessageSender sender = WebServiceMessageSenderFactory.http(settings).getWebServiceMessageSender();
|
||||
return builder.messageSenders(sender).build();
|
||||
// @formatter:on
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
|
||||
package org.springframework.boot.docs.io.webservices.template
|
||||
|
||||
import org.springframework.boot.webservices.client.HttpWebServiceMessageSenderBuilder
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings
|
||||
import org.springframework.boot.webservices.client.WebServiceMessageSenderFactory
|
||||
import org.springframework.boot.webservices.client.WebServiceTemplateBuilder
|
||||
import org.springframework.context.annotation.Bean
|
||||
import org.springframework.context.annotation.Configuration
|
||||
@@ -28,11 +29,11 @@ class MyWebServiceTemplateConfiguration {
|
||||
|
||||
@Bean
|
||||
fun webServiceTemplate(builder: WebServiceTemplateBuilder): WebServiceTemplate {
|
||||
val sender = HttpWebServiceMessageSenderBuilder()
|
||||
.setConnectTimeout(Duration.ofSeconds(5))
|
||||
.setReadTimeout(Duration.ofSeconds(2))
|
||||
.build()
|
||||
return builder.messageSenders(sender).build()
|
||||
val settings = ClientHttpRequestFactorySettings.defaults()
|
||||
.withConnectTimeout(Duration.ofSeconds(2))
|
||||
.withReadTimeout(Duration.ofSeconds(2));
|
||||
val sender = WebServiceMessageSenderFactory.http(settings).getWebServiceMessageSender();
|
||||
return builder.messageSenders(sender).build();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user