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 August 5, 2016 - Updated September 11, 2017


100% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.