Skip to Content
Nov 14, 2012 at 07:03 AM

Problems with SOAP Receiver (async) and web services that return data


Based on the SOAP adapter FAQ when your integration scenario is using asynchronous messaging and you want to call a web service that web service must only return one of the following for success:

HTTP200 with empty soap body, or

HTTP202 with no body.

All other responses will be treated as an error.

So what if the web services we need to call all return values. We don't need these values but the receiving systems cannot be changed.

It seems bizzare that we would now be forced to use a synchronous scenario here and therefore lose allot of the benefits of having PI.

I'm wondering what others have done in this situation as it must be relatively common.

Do you:

1) Force the recevier systems to change their web service api's to return empty soap body's

2) Use BPM (or ccBPM): async/sync bridge. Seems like unnecessary overhead!

3) Possibly write a soap adapter module to strip out the response - though I'm doubting that will work in async scenario. In Sync the module gets access to request and response but I can't find any doco that states the same for async. Will have to just build one to test.

4) Switch to AXIS adapter - however I note that the AXIS FAQ also stipulates the same requirement of webservices replying with an empty soap body for success. Although with axis, a handler could be written and depending on when its called it may be able to strip out or ignore the response. Once again - really need to build one to test.

This must have come up so many times before... Any ideas? Best solutions?

Regards... Jason.