Rest to Soap To Rest Conversion - Apigee strips out namespaces after editing AssignMessage Policy

Not applicable

I created a rest to soap to rest proxy in apigee from the following wsdl - https://ws5.responsys.net/webservices/wsdl/ResponsysWS_Level1.wsdl

Apigee automatically added Assign Message Policies to the endpoints. Making a request to one of the endpoints, eg /login works fine and sends the following payload:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><login xmlns="urn:ws.rsys.com"><username>test</username><password>test</password> </login> </soap:Body> </soap:Envelope>

However, as soon as I make any changes to the assign message policy content (issue persists even after changes have been reverted), the soap namespace is removed from the payload causing requests to fail:

<Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Body><login xmlns="urn:ws.rsys.com"><username>test</username><password>test</password> </login> </Body> </Envelope>

Does anyone know what causes this? Is it a bug in the ui editor? The assign message policy content is below:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="true" enabled="true" name="login-build-soap"> <DisplayName>login Build SOAP</DisplayName> <Add> <Headers> <Header name="SOAPAction"/> </Headers> </Add> <Set> <Headers> <Header name="Content-Type">text/xml; charset=utf-8</Header> </Headers> <Payload contentType="text/xml"> <Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Body> <login xmlns="urn:ws.rsys.com"> <!--Required--> <username>{username}</username> <!--Required--> <password>{password}</password> </login> </Body> </Envelope> </Payload> <Verb>POST</Verb> </Set> <AssignVariable> <Name>forward.target.url</Name> <Value>https://ws5.responsys.net/webservices/services/ResponsysWSService</Value> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>

0 0 535
0 REPLIES 0