[dev] WSDL binding in the SOAP server

Jan Schneider jan at horde.org
Mon Aug 23 07:32:05 PDT 2004


Zitat von John Morrissey <jwm at horde.net>:

> I've been using the SOAP server more extensively lately, and noticed that
> complex types aren't being translated in SOAP responses - they're typed as a
> "Struct" instead of the complex return type specified for the API call.
>
> In order for this translation to happen, we need to bind our generated WSDL
> to the SOAP server, a la:
>
> $this->_server->bindWSDL($url);
>
> in Horde_RPC_soap. The complex return types defined in $_services[]['type']
> are then used in SOAP responses.
>
> The problem is that SOAP::Server doesn't provide a way to bind WSDL text,
> it'll only take the URL to your WSDL. Since the PHP session is locked when
> the SOAP request comes in (with file-based sessions), we can't just fetch
> rpc.php?wsdl using the same session ID presented for the SOAP request - it
> will hang.
>
> Any thoughts on how we can fix this?

The WSDL generation should work without being authenticated, right? And
parallel requests only block if *both* are using sessions, right? The you
should be able to put something like

if (isset($_GET['wsdl'])) {
     $session_control = 'none';
}

before lib/base.php gets included.

Jan.

--
Do you need professional PHP or Horde consulting?
http://horde.org/consulting.php


More information about the dev mailing list