Web Service Provider Response Error

Hi all,

I created a Flow Service which has a well defined Input/Output Parameters. Depending on the input parameters I call a specific Web Service and then map the response of the web service to my defined output.

I also created a Provider Web Service to expose the Flow Service mentioned above.

The problem is that when I test the web service wrapper of the flow service in SOAPUI it give my back the response of the web service called on the flow service and not the define output parameter of the flow service.

I’m using IS 7.1

Ensure your pipeline is clear of everything except the output and your document which will trigger a SOAP FAULT.

Also make sure your fault document is declared in the SOAP Provider.

We still have some issues with that.

This is what we been able to do:

  • Drop the response variable of every web service call after mapped to the universal output (the output defined in the flow service).


After doing that the Response was still the response of the web service call inside the flow service.

  • Then we found out about pub.xml:DocumentToXmlString and pub.flow.SetResponse. After implementing those in the flow service the response change to the desire one.


Even though is the desired universal output in XML is not a SOAP envelope.

It is normal to have to use DocumentToXmlString and SetResponse functions when creating a web service from a Flow Service. Is there a function that creates a SOAP envelope from a XML?

I don’t think setResponse can produce a soap response.
You can try the below sequence

  1. documentToXmlString
  2. xmlStringToXmlNode
  3. createSoapData
  4. addBodyEntry (node and soapData as inputs. Map result to soapResponseData)
    This will make the soapResponse data. The output xmlDocument be defined in the wsdl.

Cheers
Guna

I finally found out what was happening. So inside my flow I called a web service. That web service was called generating a WSD Consumer. When a WSD Consumer is created a connector is created for each method. You have to go inside the flow of the connector and drop the response from the pipeline.

The only thing I see I don’t like is that every time I regenerate the connector I have to do this.