I was trying to consume a WSDL in ABAP and I have created ABAP proxy using wizard in SE80 and also did the LPCONFIG.
While calling the proxy methods it is throughing the "authrization failed" error because of the following issue.I have successfully executed same WSDL from some third party tools with out error.only difference I have observed in SOAP request is, Third party tools passing all name spaces at envelope level but in ABAP proxy it is not passing all name spaces at envelope level.
1. SOAP genarated from WSDL in third party tool.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.xxxxx.com ">
SOAP genarated from WSDL in ABAP proxy.
GetKMContent xmlns:nr1=" http://schemas.xxxxx.com ">
I was trying to use the SOAP genarated in ABAP proxy in thrid party tool and end up with same "authrization failed " error. If I move the name space nr1 from <nr1:GetKMContent xmlns:nr1="http://schemas.xxxxx.com "> GetKMContent node to soap-env:Envelope http://schemas.xmlsoap.org/soap/envelope/" xmlns:nr1=" http://schemas.xxxxx.com "> then it is working fine.
Question :Is there any way in ABAP proxy to pass name space at soap-env:Envelope level or is there any way to change the SOAP request once it is genarated from ABAP Proxy?. Is there any API to change SOAP information?