pub.soap.utils:createSoapData returns string not object

Hi everyone,

I’m trying to call a webservice (uses specification reference “pub.soap.utils:requestResponseSpec”) and therefore I’m building up the soapRequestData-message. The generated WebService-Connector uses built-in service pub.soap.utils:createSoapData, which output parameter is defined as an object named “soapData”.

On pipeline this variable is a string containing the following message:

<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:SOAP-ENC=“http://schemas.xmlsoap.org/soap/encoding/” xmlns:xsd=“http://www.w3.org/1999/XMLSchema” xmlns:xsi=“http://www.w3.org/1999/XMLSchema-instance”>
SOAP-ENV:Body
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Why is this message represented by a string and not by an object or node as the output interface has been defined?

After adding body entries using pub.soap.utils:addBodyEntry, soapData is still a string. Inside the webservice (resides on the same host for testing purposes - the remote webService is not yet available) then I get a class cast exception, because input parameters “soapRequestData” and “soapResponseData” are strings on the pipeline too.

Can anyone provide help, so that I am able to access the required data within the called webservice? Thanks in advance.

Kind regards,
Max.

Max,

It is normal for the soapData, soapRequestData and soapResponseData variables to appear as strings in the pipeline. If you created those varialbes using pub.soap.utils:createSoapData or pub.soap.utils:stringToSoapData then you’re on the right track.

I could not tell from your message whether you are trying to invoke a web service operation using the Flow service generated by a web service connector or by creating your own service.

Also, at what point are you getting the class cast exception?

Mark