diff --git a/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilder.java b/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilder.java index 916d52eafbe..8a5513e276b 100644 --- a/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilder.java +++ b/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilder.java @@ -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()); } /** diff --git a/module/spring-boot-webservices/src/test/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilderTests.java b/module/spring-boot-webservices/src/test/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilderTests.java index 049bff9d3d3..8d39b0c6195 100644 --- a/module/spring-boot-webservices/src/test/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilderTests.java +++ b/module/spring-boot-webservices/src/test/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilderTests.java @@ -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);