Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

Extract Variable : Xpath for Soap request not working on Private Cloud

Not applicable

I created one soap pass through proxy and the default Extract Operation name policy is not working when deployed on our on-premise private cloud. The same proxy is resolving the xpath functions in our public cloud instance.

On Premise private cloud version - 4.17.09.00

Any help appreciated .

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Operation-Name">
    <DisplayName>Extract Operation Name</DisplayName>
    <Properties/>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <Source clearPayload="false">request</Source>
    <XMLPayload stopPayloadProcessing="false">
        <Variable name="envelope" type="String">
            <XPath>local-name(/*)</XPath>
        </Variable>
        <Variable name="body" type="String">
            <XPath>local-name(/*/*[local-name() = 'Body'])</XPath>
        </Variable>
        <Variable name="envelopeNamespace" type="String">
            <XPath>namespace-uri(/*)</XPath>
        </Variable>
        <Variable name="operation" type="String">
            <XPath>local-name(//*[local-name() = 'Body']/*[1])</XPath>
        </Variable>
    </XMLPayload>
</ExtractVariables>
Solved Solved
1 6 910
1 ACCEPTED SOLUTION

ok thanks.

From the screenshots, here is what I see. In the request you are sending to the API Proxy running on Edge SaaS :

  • you are using POST.
  • SOAP is being sent into the Apigee Edge API Proxy
  • You are running the ExtractVariables on the SOAP provided
  • the ExtractVariables is working as expected.

In the request sent to the API Proxy for othe customer-managed (aka on-prem) Edge install

  • You are using GET
  • No payload is sent (because it's a GET request)
  • The ExtractVariables is doing nothing. This is expected, correct behavior, because the payload is empty!

Somehow there is a difference between the request you are making to the Edge SaaS and the request you are sending to the customer-managed installation of Edge.

Resolve that difference, and I bet you'll solve your mystery!

View solution in original post

6 REPLIES 6
Top Solution Authors