Spring Boot: Web Services (веб службы)

Spring Boot обеспечивает автоматическую настройку Web Services, поэтому все, что вам нужно сделать, это определить Endpoints.

Доступ к функциям Spring Web Services можно легко получить с помощью модуля spring-boot-starter-webservices.

Бины SimpleWsdl11Definition и SimpleXsdSchema могут быть автоматически созданы для ваших WSDL и XSD соответственно. Для этого настройте их расположение, как показано в следующем примере:

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

Вызов Web Services с помощью WebServiceTemplate

Если вам нужно вызывать удаленные Web Services из вашего приложения, вы можете использовать класс WebServiceTemplate. Поскольку экземпляры WebServiceTemplate часто необходимо настраивать перед использованием, Spring Boot не предоставляет ни одного автоматически настраиваемого компонента WebServiceTemplate. Однако он автоматически настраивает WebServiceTemplateBuilder, который можно использовать для создания экземпляров WebServiceTemplate при необходимости.

Следующий код показывает типичный пример:

@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));
    }

}

По умолчанию WebServiceTemplateBuilder обнаруживает подходящий HTTP-интерфейс WebServiceMessageSender, используя доступные клиентские библиотеки HTTP на пути к классам. Вы также можете настроить время ожидания для чтения и подключения следующим образом:

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


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки