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.
Este error se debe
a que el OSB siempre encierra las variables de contexto $body y $header con <soap-env:Body> y <soap-env:Header> respectivamente. Por
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.

