title: how do I test an MTOM webservice with soapUI?
body: <p>I've built a webservice that wraps <a href="http://xmlgraphics.apache.org/fop/" rel="nofollow noreferrer">Apache FOP</a>. You send it XML, and it gives you an MTOM stream that contains the rendered PDF. Now that its working, I'd like to run some performance tests on it. <a href="http://www.soapui.org/userguide/attachments.html" rel="nofollow noreferrer">soapUI says they support MTOM</a>, and I use it for all my other webservice performance testing, so it would be great if I didn't have to write a custom test harness.</p>
  
  <p>So here's the issue: I get the response back in soapUI, and it looks like this:</p>
  
  <pre><code>&lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&gt;
     &lt;soapenv:Body&gt;
        &lt;ns2:RenderDocumentResponse xmlns:ns2="http://webservices.cscinfo.com/renderService"&gt;
           &lt;ns2:Content&gt;
              &lt;ns2:fileName xsi:nil="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/&gt;
              &lt;ns2:fileType&gt;pdf&lt;/ns2:fileType&gt;
              &lt;ns2:mimeType&gt;application/pdf&lt;/ns2:mimeType&gt;
      &lt;ns2:binaryData&gt;JVBERAkAAiNkRUcERRkaYIMijggKNDkbEiioUBUbHrBBlE1HFwFBuWSWStGd+8ee/Nm98f935rn73P3Wfvfda6AJD8gwXCTFgJgAyhWBTh58WIjYtnYAcBDPAAA2wA4HCzs0IW+EYCmQJ82IxsmRP4F726DiD5+yrTP4zBAP+flLlZIjEAUJiM5/L42VwZF8k4PVecJbdPyZi2NE3OMErOIlmCMlaTc&lt;/ns2:binaryData&gt;
           &lt;/ns2:Content&gt;
           &lt;ns2:message&gt;file rendered&lt;/ns2:message&gt;
        &lt;/ns2:RenderDocumentResponse&gt;
     &lt;/soapenv:Body&gt;
  &lt;/soapenv:Envelope&gt;
  </code></pre>
  
  <p><strong>How do I get soapUI to dump and decode the binary data for me?</strong> I want to make sure its a valid PDF and all that. (I've truncated the data in the response for brevity, and munged it to protect the guilty! So its not real PDF data in this post)</p>
  
  <p>Update: here's what soapUI shows in the "raw" response tab:</p>
  
  <pre><code>HTTP/1.1 200 OK
  Date: Wed, 13 Jan 2010 17:02:31 GMT
  Transfer-Encoding: chunked
  Content-Type: text/xml; charset=UTF-8
  X-Powered-By: Servlet/2.5 JSP/2.1
  </code></pre>