Hi there,
I've managed to get this up and running with the latest services (2.x) branch and nusoap installed.
For the most part the services are all working fine. However i've come across a problem when the input argument for a service method should be an object (xsd:struct). 2 examples of such are in node.save and user.save methods.
if i do a print_r() on the $soap_server object right after it has registered each service method with the soap server i get the following for user.save -
[user.save] => Array
(
[name] => user.save
[binding] => DrupalSoapBinding
[endpoint] => http://example.com/soap_server.php
[soapAction] => urn:DrupalSoapuser.save
[style] => rpc
[input] => Array
(
[use] => encoded
[namespace] => urn:DrupalSoap
[encodingStyle] => http://schemas.xmlsoap.org/soap/encoding/
[message] => user.saveRequest
[parts] => Array
(
[account] => xsd:struct
)
)
[output] => Array
(
[use] => encoded
[namespace] => urn:DrupalSoap
[encodingStyle] => http://schemas.xmlsoap.org/soap/encoding/
[message] => user.saveResponse
[parts] => Array
(
[return] => xsd:int
)
)
[namespace] => urn:DrupalSoap
[transport] => http://schemas.xmlsoap.org/soap/http
[documentation] => Save user details.
)
on first glance this looks all okay? However if i try and load the WSDL into soapUI to test the requests / responses the soap envelope looks like this -
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:DrupalSoap">
<soapenv:Header/>
<soapenv:Body>
<urn:user.save soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</soapenv:Body>
</soapenv:Envelope>
The envelope looks to be missing any kind of input parameters to post to the service ? Subsequently if i try to call the service posting it a user account object it simply returns 0 and does not save the user.
Any ideas how i can get the soap server to correctly accept object as an input parameter to the service?