on 05-10-2013 3:43 PM
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
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
Few suggestions..
>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.
You should get payload. I don't understand.
After choosing do not use envelope create the XSL mapping and see if that helps. example as below..
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:urn="urn:xx.xxx.com:xxx:xxxxxxxxx_POC">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="*">
<soapenv:Envelope>
<soapenv:Header>
</soapenv:Header>
<soapenv:Body>
<xsl:copy-of select="/*"/>
</soapenv:Body>
</soapenv:Envelope>
</xsl:template>
</xsl:stylesheet>
Another option is test using soapui and see what do you get?
I also suspect client system has some issues.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Your message type structure should be like this:
<urn:MT_ClientRequest xmlns:urn="urn:xx.xxx.com:xxx:xxxxxxxxx_POC">
<Name>am</Name>
</urn:MT_ClientRequest>
Nothing else.
The envelope is created or removed by the SOAP adapter automatically.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Stefan,
I have pulled the request message type from SXMB_MONI. Just retrieved the WSDL from Sender Agreement and gave it to the client. I am not sure, why the request message is not coming in the format given by you.
Is there some setting that needs to be done at the message level or ESR/IB?
Regards
User | Count |
---|---|
89 | |
10 | |
10 | |
9 | |
6 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.