| Tabla de contenidos |
|---|
...
Dependencia pom.xml
Para hacer un cliente SOAP en Spring Boot, en primer lugar tendremos que añadir la siguiente dependencia a nuestro pom.xml:
| Bloque de código | ||
|---|---|---|
| ||
<!-- Dependencia Spring WS --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> |
Plugin para generar automáticamente el cliente
Podemos añadir, también en el pom.xml, el siguiente plugin para generar las clases necesarias para el cliente automáticamente, a partir de un archivo .wsdl. Si queremos generar las clases a partir de diferentes wsdl, debemos ponerlos en diferentes bloque s<execution>:
...
Aquí, tendremos que especificar el campo generatePackage, con el paquete en el que se crearán las clases, schemaDirectory con el directorio donde el plugin buscará los archivos wsdl, que se especificarán dentro de schemaIncludes.
Cliente
Una vez generadas las clases necesarias por el plugin, tendremos que hacer el cliente:
| Bloque de código | ||
|---|---|---|
| ||
package com.servicios.soap.client;
import javax.xml.bind.JAXBElement;
import org.springframework.ws.client.core.support.WebServiceGatewaySupport;
import com.servicios.soap.model.ObjectFactory;
import com.servicios.soap.model.ProductosVentaRequestType;
import com.servicios.soap.model.ProductosVentaResponseType;
public class MarketSoapClient extends WebServiceGatewaySupport {
public ProductosVentaResponseType obtenerTodosProductos() {
ObjectFactory of = new ObjectFactory();
JAXBElement<ProductosVentaRequestType> request = of.createProductosTodosRequest(new ProductosVentaRequestType());
JAXBElement<ProductosVentaResponseType> response = (JAXBElement<ProductosVentaResponseType>) getWebServiceTemplate()
.marshalSendAndReceive(request);
return response.getValue();
}
} |
Configuración cliente
Por último, tendremos que añadir la siguiente clase para la configuración del cliente:
...