Hello Everyone,
We are trying to implement the SOAP to PI to Proxy scenario wherein the PI interface is exposed as a webservice to an external system. The Client Program is trying to send the following message to the PI webservice :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:xx.xxx.com:xxx:xxxxxxxxx_POC">
<soapenv:Header/>
<soapenv:Body>
<urn:MT_ClientRequest>
<Name>am</Name>
</urn:MT_ClientRequest>
</soapenv:Body>
</soapenv:Envelope>
It is failing while mapping and giving the error "The prefix "soapenv" for element "soapenv:Envelope" is not bound." When I checked SXMB_MONI for the request message it is showing me the below given message
<MT_ClientRequest xmlns='urn:xx.xxx.com:xxx:xxxxxxxxx_POC'>
<soapenv:Envelope>
<soapenv:Header/>
<soapenv:Body>
<MT_ClientRequest>
<Name xmlns=''>am10May</Name>
</MT_ClientRequest>
</soapenv:Body>
</soapenv:Envelope>
</MT_ClientRequest>
Clearly it is failing because it is not able to find a reference to "soapenv" in the body.
I have tried the below mentioned remedies
- Make the sender channel adjustments to "Do Not Use SOAP Envelope". This fails because, the Body of the message is not passed to the mapping program in this case.
- Created an XSLT to add namespace xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/". This fails with the error "The prefix "soapenv" for element "soapenv:Envelope" is not bound."
- Created an XSLT to remove prefix soapenv. This fails with the error "The prefix "soapenv" for element "soapenv:Envelope" is not bound."
I have read a few blog entries about using the XMLAnonymizerBean but I am not sure if it will work on the SOAP Sender Adapter Channel.
Any help to overcome the error will be highly appreciated.
Regards