WebService

Spring Boot提供Web服务自动配置,因此您必须做的就是定义您的Endpoints

春天的Web服务功能可以与轻松访问spring-boot-starter-webservices模块。

SimpleWsdl11DefinitionSimpleXsdSchemabean可以分别为您的WSDL和XSD自动创建。为此,请配置其位置,如以下示例所示:

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

使用Web调用Web服务 WebServiceTemplate

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

以下代码显示了一个典型示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Service
public class MyService {

private final WebServiceTemplate webServiceTemplate;

public MyService(WebServiceTemplateBuilder webServiceTemplateBuilder) {
this.webServiceTemplate = webServiceTemplateBuilder.build();
}

public DetailsResp someWsCall(DetailsReq detailsReq) {
return (DetailsResp) this.webServiceTemplate
.marshalSendAndReceive(detailsReq, new SoapActionCallback(ACTION));

}
}

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

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