My customer’s web service has two (string) parameters passed by reference so that they can return multiple pieces of information from a single call. (Let’s leave design issues to the side for now.) In some cases, one of these strings is empty (“”).
What I’m observing, in these cases, is that my orchestration hangs waiting for the response from the web service.
For now, I’ve put up a fascade web service that passes the call through to my customer, and on return, checks for the empty string. The fascade replaces the empty string with a single space. This seems to work.
My guess is that the SOAP response doesn’t contain the node for the blank string, and the port doesn’t recognize the “abbreviated” response, so it keeps waiting for the full one (which never comes). By putting in the single space, the SOAP response contains the node, the port recognizes the response, and the port passes the response back to the orchestration.
If someone has more information on this, I’d love to hear it. At some point, I’d like to sniff out the SOAP response and check my theory, but that’s not going to happen anytime soon.