Error connecting to backend soap service (Connectivity between apigee and backend is over vpn)

I have a SOAP service in the backend which is up and running and is connected to apigee via VPN.

I want to expose it as a API using apigee.

I am hitting the target url of the firewall which in turn converts it to the backend service url.

With the actual service url and SOAP Request, I get the successful response from SOAPUI.

But while calling the firewall target url via my proxy, I am getting this error.

{"Envelope":{"encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","Body":{"Fault":{"faultcode":"soap:Server","faultstring":"The Service is temporarily unavailable","faultactor":{},"detail":{"source":{"errorcode":"messaging.adaptors.http.flow.ServiceUnavailable"}}}}}}

Please can help on this..................

1 1 927
1 REPLY 1

You say you are getting that error.... What is generating that error?

Have you looked in the Trace UI to determine the chain of data flow?

It looks to me like a SOAP Envelope, that has been passed through an XML-to-JSON policy. Assuming I'm right about that, is the SOAP Envelope being generated by your backend? By the firewall?

ok, if that's the case, then you can conclude that the firewall does not like the inbound request from Apigee Edge. That's a good clue. To diagnose this, I would very carefully compare the request that works (the one you send directly) to the request that Apigee Edge is sending. Something is different, and that difference is leading to the error thrown by the firewall. It could be an HTTP header value missing or added, it could be a bad url path, or it could be a hostname or IP address difference. Even a verb!

Within the Trace UI you should be able to see the entire message in detail.

If you want some help with this, post the message that you send that works, and post the data you can see in Apigee Trace from the request that does not work.

----

All of the above assumes that the SOAP envelope is being generated by the backend. But that was only a guess. You'll have to guide me on whether my guess is correct. If it's not, then provide some more information and we'll try to take it from there.