Admite mensajes SOAP MTOM/XOP mediante Jitterbit Integration Studio
Introducción
Este patrón de diseño configura el servicio SOAP Mecanismo de optimización de transmisión de mensajes (MTOM) con Empaquetado optimizado de XML binario (XOP) Soporte mediante el conector HTTP.
Importante
El conector SOAP no admite esta funcionalidad. Se utiliza el conector HTTP como solución alternativa.
Patrón de diseño y ejemplo
Esta cadena de operación de ejemplo se utiliza para ilustrar el patrón de diseño, cuyas características clave se describen a continuación:
-
(Opcional) La operación Crear solicitud SOAP aplica encabezados de solicitud SOAP (como un encabezado OASIS WSS) según sea necesario arriba en la cadena de la operación de solicitud con un secuencia de comandos:
Example OASIS WSS header addition script:<trans> WriteToOperationLog('Pre: ' + $soap_request_body); $soap_request_body=Replace($soap_request_body, '<?xml version="1.0" encoding="UTF-8"?>',''); $soap_request_body=Replace($soap_request_body, '<root xmlns="http://www.jitterbit.com/XsdFromWsdl" xmlns:ns="http://schemas.example.com/2025/1/Test/Batch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">', ''); $soap_request_body=Replace($soap_request_body,'<transaction>',''); $soap_request_body=Replace($soap_request_body,'<body>',''); $soap_request_body=Replace($soap_request_body,'</transaction>',''); $soap_request_body=Replace($soap_request_body,'</body>',''); $soap_request_body=Replace($soap_request_body,'</root>',''); $soap_request_body=trim($soap_request_body); $soap_request_body='<?xml version="1.0" encoding="UTF-8" standalone="no"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://schemas.example.com/2025/1/Test/Batch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1"> <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id='+ $wss.id +'> <wsse:Username>'+ $WSS.User +'</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">'+ $WSS.Password +'</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soapenv:Header> <soapenv:Body> ' + $soap_request_body; $soap_request_body = $soap_request_body + '\r\n</soapenv:Body> </soapenv:Envelope>'; WriteToOperationLog('Post: ' + $soap_request_body); </trans>
Si estos encabezados no son necesarios, el cuerpo de la solicitud SOAP se puede definir y utilizar en la Solicitud SOAP directamente.
-
La operación POST Solicitud SOAP realiza la solicitud SOAP y el análisis de XOP. Requiere lo siguiente:
- Una [conexión HTTP]( configurada
/integration-studio/design/connectors/http/http-connection/) la URL base de la conexión debe apuntar al servicio SOAP deseado. Por ejemplo,
http://schemas.example.com/service.svc` no se requieren otros campos. -
Una actividad HTTP POST. Debe contener dos encabezados de solicitud:
Content-Type
:text/xml; charset="utf-8"
SOAPAction
:"http://schemas.example.com/service/action"
- Variables de solicitud y respuesta para trabajar con sus cargas útiles (
soap_request_body
ysoap_response
).
-
Un secuencia de comandos que divide la carga útil XOP de respuesta para analizarla según sea necesario:
Example XOP parsing script:<trans> parseDelim=Split(trim($soap_response),"\n"); arrayDelim=parseDelim[1]; splitArray=Split($soap_response,arrayDelim); splitArray=split(splitArray[1],"\n"); xml=splitArray[4]; splitXml=split(xml,'<s:Body>'); Xml=split(splitXml[1],'</s:Body>')[0]; start='<?xml version="1.0" encoding="UTF-8"?> <root xmlns="http://www.jitterbit.com/XsdFromWsdl" xmlns:ns="http://schemas.example.com/2025/1/Test/Batch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <transaction> <response> <body>'; end='</body></response></transaction></root>'; $soap_response =start+xml+end; WriteToOperationLog($soap_response); </trans>
Importante
El
Split
Las llamadas a funciones del ejemplo anterior podrían no ser aplicables a su caso de uso. Aplique reglas de análisis según el servicio web al que esté llamando.
- Una [conexión HTTP]( configurada
-
La operación Parse SOAP Response transforma la respuesta XOP para respaldar aún más su caso de uso.