webMethods 6.5 & SOAP-RPC

Hello,

I’ve noticed a strange output in the SOAP when using the built-in SOAP-RPC processor. I have a method which comes back with a list of dates. I’m looking at the SoapResponseData object in my webMethods WSDL client to it and here’s what comes back:
[HTML]<SOAP-ENV:Envelope
xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/
xmlns:SOAP-ENC=“http://schemas.xmlsoap.org/soap/encoding/
xmlns:xsd=“XML Schema
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance
SOAP-ENV:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/”>
SOAP-ENV:Body
<ser-root:getVersionsResponse xmlns:ser-root=“urn:company:namespace:v1” SOAP-ENC:root=‘1’>

<_x0040_success xsi:tyoe=“xsd:boolean”>true</_x0040_success>
<VersionList xsi:type="sc1:_VersionList id=“id2”>


2006-09-12


2006-02-18



</getVersionsResponse
</ser-root:getVersionsResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>[/HTML]

Why would getVersionsResponse show up twice when it’s only there once in my output for the adapter? If I build a webMethods 6.5 client to it, it seems to be able to parse it correctly and come back with one getVersionsResponse node. I’ve noticed that if I build a 7.1 client to my 6.5 service though it thinks there is two nodes and throws a validation error.

Thanks,
Dan

Looks like you are running into multi-reference. You can disable that with an IS watt.server.soap config setting. Search wMusers or Advantage for the specific config setting.

Also, don’t use SOAP-RPC. Lots of posts here on why not.

Mark

Should I maybe not have called my output document getVersionsResponse? It looks like the RPC processor creates a root node around the response called Response - where my operation happens to be called getVersions.

Is that setting a 7.1.1 setting? I saw something called "watt.server.SOAP.useMultiReference" on the net but didn’t see it in the 6.5 administration guide. Is it just an issue with 7.1 clients? Do you think other clients (non-webmethods) would be able to parse it correctly?

Thanks,
Dan

The useMultiReference param is for all versions of IS after 4.6 SP2, I believe, but you would need to confirm with a few minutes of research on Advantage.

Did I mention the thing about not using SoapRPC? I don’t think naming your operation name is causing this.

Mark