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.
- SoapEnvelope.removeNamespaceDeclaration(“SOAP-ENV”);
- soapEnvelope.addNamespaceDeclaration(“soapenv”, “http://schemas.xmlsoap.org/soap/envelope/”);
- sobredejabon.setPrefix(“soapenv”);
- jabónHeader.setPrefix(“soapenv”);
- 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)