Skip to Content
0
Feb 22, 2007 at 02:01 AM

SOAP interface to BLS transaction

82 Views

Hello everyone,

I'm currently trying to set up an xMII BLS transaction as a web service provider, but have run into an issue with the WSDL generated by xMII. We're using an unpatched install of xMII 11.5.2 b64.

The transaction takes a single numeric input parameter and generates a sample Rowset with three columns (ID, Item, Value) and as many Rows as specified in the input parameter. In the XML output, a typical Row node thus looks like this:

<Row>
  <ID>1</ID>
  <Item>Item1</Item>
  <Value>6</Value>
</Row>

In my opinion, the WSDL obtained via http://<servername>/Lighthammer/WSDLGen/<transaction> seems to be malformed. In the WSDL's <schema> section, the <Row> node of the service response is specified as follows:

<s:complexType name="Row">
  <s:sequence id="RowSequence">
    <s:element maxOccurs="1" minOccurs="1" name="OutRowsetsXML" type="s:string"/>
  </s:sequence>
</s:complexType>

To me, this says that the <Row> node of the XML output should contain a XML element with a name of "OutRowsetsXML" and string content. (Coincidentally(?), OutRowsetsXML is the name of the Transaction Output property). In my opinion, this is incorrect.

As a result of this, our web services consumer fails to validate the SOAP response against the schema in the WSDL and fails. Using the soapUI diagnostic tool, I can see that the transaction does indeed return the output I expect - but validation again fails because the schema of the SOAP response does not match the schema in the WSDL.

If I manually change the WSDL to properly describe the output document, everything works and the SOAP response is validated properly (see below for the modified WSDL segment).

<s:complexType name="Row">
  <s:sequence id="RowSequence">
    <s:element maxOccurs="1" minOccurs="1" name="ID" type="s:string"/>
    <s:element maxOccurs="1" minOccurs="1" name="Item" type="s:string"/>
    <s:element maxOccurs="1" minOccurs="1" name="Value" type="s:string"/>
  </s:sequence>
</s:complexType>

Has anyone come across this issue before, or knows what needs to be done so that the schema in the WSDL accurately describes the output? I've tried to assign a Reference Document to the transaction output property in BLS Editor but this didn't resolve the issue either....

Thanks in advance for any input