Saltar al contenido

Cómo cambiar el valor predeterminado de “SOAP-ENV” prefix de Primavera-WS

La guía o código que verás en este post es la resolución más fácil y efectiva que encontramos a esta duda o problema.

Solución:

Una mejor solución

Utilice la API SOAPMessage en lugar de DOM.

  private void alterSoapEnvelope(SaajSoapMessage soapResponse) 
    try 
      SOAPMessage soapMessage = soapResponse.getSaajMessage();
      SOAPPart soapPart = soapMessage.getSOAPPart();
      SOAPEnvelope envelope = soapPart.getEnvelope();
      SOAPHeader header = soapMessage.getSOAPHeader();
      SOAPBody body = soapMessage.getSOAPBody();
      SOAPFault fault = body.getFault();
      envelope.removeNamespaceDeclaration(envelope.getPrefix());
      envelope.addNamespaceDeclaration(PREFERRED_PREFIX, SOAP_ENV_NAMESPACE);
      envelope.setPrefix(PREFERRED_PREFIX);
      header.setPrefix(PREFERRED_PREFIX);
      body.setPrefix(PREFERRED_PREFIX);
      if (fault != null) 
        fault.setPrefix(PREFERRED_PREFIX);
      
     catch (SOAPException e) 
      e.printStackTrace();
    
  

Ahora es mucho más rápido.

Yo uso SAAJ. Prueba esto.

  1. SoapEnvelope.removeNamespaceDeclaration(“SOAP-ENV”);
  2. soapEnvelope.addNamespaceDeclaration(“soapenv”, “http://schemas.xmlsoap.org/soap/envelope/”);
  3. sobredejabon.setPrefix(“soapenv”);
  4. jabónHeader.setPrefix(“soapenv”);
  5. cuerpodejabon.setPrefix(“soapenv”);

No olvides: soapMessage.saveChanges();

Referencia: Cambiar el espacio de nombres XML predeterminado prefix generado con JAXWS

Reseñas y puntuaciones

Tienes la posibilidad recomendar este ensayo si si solucionó tu problema.

¡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 *