mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-09-17 12:09:16 +00:00
Prevent default WebServiceMessageFactory to be created
This commit improves the builder to provide the message factory upfront rather than setting it after the WebServiceTemplate has been instantiated. By providing the factory upfront (if it is set), it prevents the default strategy to be created first to be then erased by the custom factory. Closes gh-48615
This commit is contained in:
+2
-1
@@ -454,7 +454,8 @@ public class WebServiceTemplateBuilder {
|
||||
* @see #configure(WebServiceTemplate)
|
||||
*/
|
||||
public WebServiceTemplate build() {
|
||||
return configure(new WebServiceTemplate());
|
||||
return configure(
|
||||
(this.messageFactory != null) ? new WebServiceTemplate(this.messageFactory) : new WebServiceTemplate());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+7
@@ -38,6 +38,7 @@ import org.springframework.ws.client.core.FaultMessageResolver;
|
||||
import org.springframework.ws.client.core.WebServiceTemplate;
|
||||
import org.springframework.ws.client.support.destination.DestinationProvider;
|
||||
import org.springframework.ws.client.support.interceptor.ClientInterceptor;
|
||||
import org.springframework.ws.soap.saaj.SaajSoapMessageFactory;
|
||||
import org.springframework.ws.transport.WebServiceMessageSender;
|
||||
import org.springframework.ws.transport.http.ClientHttpRequestMessageSender;
|
||||
import org.springframework.ws.transport.http.HttpUrlConnectionMessageSender;
|
||||
@@ -318,6 +319,12 @@ class WebServiceTemplateBuilderTests {
|
||||
then(template).should().setTransformerFactoryClass(SAXTransformerFactory.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
void buildShouldDetectWebServiceMessageFactory() {
|
||||
WebServiceTemplate webServiceTemplate = this.builder.build();
|
||||
assertThat(webServiceTemplate.getMessageFactory()).isInstanceOf(SaajSoapMessageFactory.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
void setWebServiceMessageFactory() {
|
||||
WebServiceMessageFactory messageFactory = mock(WebServiceMessageFactory.class);
|
||||
|
||||
Reference in New Issue
Block a user