Support Article
Connect SOAP with MTOM enabled fails after upgrade to 7.2.1
SA-26447
Summary
After upgrading your system to Pega 7.2.1 from Pega 7.1.7, Connect SOAP request messages fail on the application server with the XOP error.
Error Messages
xop 3.2.2.a: xop:Include must be the sole child of element {http://a.b.c.d/CIM/Common/2}Document of type {http://a.b.c/2001/XMLSchema}base64Binary.
Steps to Reproduce
Create and invoke a SOAP call with MTOM (Message Transmission Optimization Mechanism) enabled.
Root Cause
A defect in Pegasystems' code or rules
Examination of the SOAP message sent from the Pega server indicates that the base64binary is not substituted correctly with the expected XOP Include element.
Axis uses Axiom to write Multipart messages and multiple XOP writers are involved in writing and encoding the message.
When the writer stream is flushed, it depends on SimpleNsStreamWriter to write the bytes. Now, SimpleNsStreamWriter is packaged as part of WStx-2.3-asl.jar and webservices-rt.jar.
In Pega 7.1.7 there was no SimpleNsStreamWriter in webservices-rt.jar and Metro API started packaging stax specific libraries and wstx specific classes.
Webservices-rt classes is taking precedence over wstx-asl classes, which was generating the XOP:include elements with inline content.
Resolution
Apply HFix-28742.
Be sure to complete the pre-installation steps for this hotfix, as shown in SA-33715, https://pdn.pega.com/support-articles/connect-soap-mtom-xop-322a-xopinclude-must-be-sole-child.
Published September 11, 2017 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.