Te sugerimos que revises esta respuesta en un ambiente controlado antes de pasarlo a producción, un saludo.
Solución:
1. Configure las dependencias del proyecto
agregue las siguientes dependencias al archivo pom:
org.springframework.ws
spring-ws-core
2.1.3.RELEASE
org.apache.httpcomponents
httpclient
4.2.5
2. Configurar el contexto de la aplicación del servicio web
3. Configure clases de modelo que se asignarían a sus objetos de solicitud / respuesta SOAP
Por ejemplo, si el XML de su solicitud SOAP se parece a
1
y su XML de respuesta SOAP se veía así:
...
0
las clases correspondientes (bajo el paquete que especificó en el bean marshaller: com.yourcompany.model) serían respectivamente:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = "paramONE" )
@XmlRootElement(name = "InputParameters", namespace = "http://yourcompany.com")
public class InputParameters
@XmlElement(required = true, namespace = "http://yourcompany.com")
private String paramONE;
public String getParamONE()
return paramONE;
public void setParamONE(String paramONE)
this.paramONE = paramONE;
y
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = "paramONE" )
@XmlRootElement(name = "OutputParameters", namespace = "http://yourcompany.com")
public class OutputParameters
@XmlElement(required = true, namespace = "http://yourcompany.com")
private BigDecimal paramONE;
public BigDecimal getParamONE()
return this.paramONE;
public void setParamONE(BigDecimal paramONE)
this.paramONE= paramONE;
4. Agregue una fábrica de objetos (en el paquete com.yourcompany.model) para crear objetos de solicitud / respuesta
@XmlRegistry
public class ObjectFactory
public ObjectFactory()
public InputParameters createYourRequest()
return new InputParameters();
public OutputParameters createYourResponse()
return new OutputParameters();
5. Crea un cliente para consumir el servicio.
Interfaz:
public interface YourService
BigDecimal getValue(String paramOne);
Implementación
@Component("yourServiceClient")
public class YourServiceClient implements YourService
private static final ObjectFactory WS_CLIENT_FACTORY = new ObjectFactory();
private WebServiceTemplate webServiceTemplate;
@Autowired
public YourServiceClient(WebServiceTemplate webServiceTemplate)
this.webServiceTemplate = webServiceTemplate;
@Override
public BigDecimal getValue(String paramOne)
InputParameters request = WS_CLIENT_FACTORY
.createYourRequest();
request.setParamONE(paramOne);
OutputParameters response = (OutputParameters) webServiceTemplate
.marshalSendAndReceive(request);
return response.getParamONE();
@Taoufik Mohdit ¡¡La respuesta está completa !!
Para construir los objetos de entrada y salida, puede usar Webservice-Client: ¿enfoque común con Spring WS, JAXB y solo un archivo WSDL? de alguna manera construir estos objetos automáticamente
Aquí tienes las comentarios y calificaciones
Si posees algún titubeo o capacidad de regenerar nuestro artículo te insinuamos realizar una reseña y con placer lo interpretaremos.