Saltar al contenido

Consuma el servicio de servicio web en SPRING-WS usando wsdl

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *