I have currently developed a service that is handled by the default soap processor. The issue is at the end of the service when it is returning a response with a large document (16MB) it fails. With smaller documents (2MB and smaller) the service always works correctly. With the large file one of two things happens, the webMethods instance locks up or it throws a NullPointerException.
By placing debug invocations I can see that it has successfully see that it has left my service and is obviously in the process of adding the document to the soap envelope for returning the response.
A temporary solution I have created is to compress and base 64 encode the document before sending it back in the response. This will work for the time being but if the document grows (which it will) then eventually the solution will not be feasable.
Is there a maximum size limit to a document that can be passed using SOAP-MSG?
Or is there suggested alternative? eg. custom processors? (though I assume it will probably have the same issue)
I think the “right” way to tranmit large documents to/from web services is by using Soap With Attachments or MTOM. MTOM appears to be more widely supported.
Neither is easily supported in IS 6.5, but MTOM is supported (with a few early release kinks) in IS 7.1.1.
MTOM or SWA should take care of transporting the large doc, but you still have to use care in creating it and avoid creating multiple copies in memory.