Translate...

lunes, 23 de julio de 2018

OSB-382040 - Error Común del flujo del mensaje OSB

Cuando se esta manipulando el flujo del mensaje en el pipeline, se puede dar el escenario de errores poco comunes en los cuales nos podemos enfrentar, como el siguiente error en particular, como se muestra a continuación:

Failed to set the value of context variable "body". Value must be an instance of {http://schemas.xmlsoap.org/soap/envelope/}Body.

OSB-382040


Este error se debe a que el OSB siempre encierra las variables de contexto $body $header con <soap-env:Body> y <soap-env:Header> respectivamentePor lo tanto cuando estemos manipulando estas variables de contexto, debemos asegurarnos que no se eliminen estas etiquetas.

El uso correcto en la actividad de asignación o remplazo es como se muestra a continuación:

  • Expresion:
<soap-env:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <eje:ejemplo xmlns:eje ="http://ejemplo.com/ejemplo/">
       <valor>Valor de ejemplo</valor>
    </eje:ejemplo>
</soap-env:Body>
  • Variable: Body ($body) y Header ($header)

Cuando utilizamos el llamado a un servicio, la variable de contexto dada para el 'Encabezado de la solicitud SOAP' siempre debe contener el elemento <soap-env:Header>, independientemente de la selección de 'Configure SOAP Body' o 'Configure Payload Document'. de lo contrario, aparecer el error relacionado con el encabezado:

Invalid message: the SOAP Header value is not an XML instance.