Spring Boot提供了Web服务自动配置,因此您所要做的就是定义Endpoints
春天的Web服务功能可以与轻松访问spring-boot-starter-webservices模块。
SimpleWsdl11Definition并且SimpleXsdSchema可以分别为您的WSDL和XSD自动创建bean。为此,请配置其位置,如以下示例所示:
物产
Yaml

  1. spring.webservices.wsdl-locations=classpath:/wsdl

28.1 使用WebServiceTemplate调用Web服务

如果需要从应用程序调用远程Web服务,则可以使用WebServiceTemplate该类。由于WebServiceTemplate实例在使用前通常需要自定义,因此Spring Boot不提供任何单个自动配置的WebServiceTemplatebean。但是,它会自动配置a WebServiceTemplateBuilder,可以WebServiceTemplate在需要时创建实例。
以下代码显示了一个典型示例:

  1. @Service
  2. public class MyService {
  3. private final WebServiceTemplate webServiceTemplate;
  4. public MyService(WebServiceTemplateBuilder webServiceTemplateBuilder) {
  5. this.webServiceTemplate = webServiceTemplateBuilder.build();
  6. }
  7. public DetailsResp someWsCall(DetailsReq detailsReq) {
  8. return (DetailsResp) this.webServiceTemplate.marshalSendAndReceive(detailsReq, new SoapActionCallback(ACTION));
  9. }
  10. }

默认情况下,使用类路径上的可用HTTP客户端库来WebServiceTemplateBuilder检测基于HTTP的适当内容WebServiceMessageSender。您还可以如下自定义读取和连接超时:

  1. @Bean
  2. public WebServiceTemplate webServiceTemplate(WebServiceTemplateBuilder builder) {
  3. return builder.messageSenders(new HttpWebServiceMessageSenderBuilder()
  4. .setConnectTimeout(5000).setReadTimeout(2000).build()).build();
  5. }