| Project: | SOAP Server |
| Version: | 6.x-1.2-beta1 |
| Component: | Code |
| Category: | support request |
| Priority: | normal |
| Assigned: | Unassigned |
| Status: | active |
Issue Summary
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?