Hi everybody.
As I couldn’t figure out the problem myself, I’d like to ask for an advice.
I created a WS consumer in IntegrationServer. It communicates with a cloud webservice which sometimes returns an invalid XML respones. It’s invalid because the namespace prefixes are used but the namespace declarations are missing. It looks like this:
soapenv:Body
soapenv:Fault
Internal Server Error
The incoming message is invalid with the following errors: urn:Ariba:Sourcing:vrealm_1711:AwardDownload
cvc-elt.1: Cannot find the declaration of element ‘typens:AwardDownloadRequest’.
</soapenv:Fault>
</soapenv:Body>
So, I thought I’d create a response SOAP handler on the consumer and provide the namespaces to make the XML valid. But, using pub.soap.handler:getSOAPMessage, the SOAP handler doesn’t get that response. It gets some other, SOAP-client-generated SOAP fault, which looks like this:
<?xml version='1.0' encoding='utf-8'?>soapenv:Servercom.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "soapenv"at [row,col {unknown-source}]: [1,14]http://wm9-is-d1.ifs.ori.local:5555/soap<webM:exception xmlns:webM=“http://www.webMethods.com/2001/10/soap/encoding”>
webM:classNameorg.apache.axiom.om.OMException</webM:className>
<webM:message xml:lang=“”>com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix “soapenv”
at [row,col {unknown-source}]: [1,14]</webM:message>
</webM:exception></soapenv:Fault></soapenv:Body></soapenv:Envelope>
It looks to me that there is some XML parser that tries parsing the XML response before it puts the result to the SOAP handler. And because it failes, I am not able to get the original response.
Is there a way to disable the response parsing before it reaches my response handler?.
Thanks,
Ankush Sharma