Re: [SOAP] GsoaP/PEAR::SOAP interoperability
| From: | (PHPDiscuss - PHP Newsgroups and mailing lists) | Date: | Sat, 01 May 2004 16:52:55 +0000 |
| Subject: | Re: [SOAP] GsoaP/PEAR::SOAP interoperability | ||
| References: | 1 2 | Groups: | php.soap |
| Request: | Send a blank email to php-soap+get-1507@lists.php.net to get a copy of this message | ||
Thanks O for answering my posting.
That would be great if you could send me a example (like 'hello' below) of
a GSOAP client making a request to a PEAR::SOAP server.
Also, if you have an example of structures or lists that are being passed
as a SOAP response. I have a MySQL database that is being queried by my
backend PHP code and am wondering how to pass multiple types via SOAP.
Thanks again,
Norb
Here's the corresponding C code which is currently failing:
C Code:
#include "soapH.h"
#include "ns.nsmap"
const char server[] =
"http://192.168.2.102/test/pear_soap/examples/ws/testserver1.php";
int main(int argc, char **argv) {
struct soap soap;
char result[50];
char *pass_variable;
pass_variable = result;
soap_init(&soap);
soap_call_ns4__hello(soap_new(), server, "", "bonnie girl",
&pass_variable);
if (soap.error) soap_print_fault(&soap,stderr);
else {
printf("successful");
printf("result: %s", pass_variable);
}
return 0;
}
Here's the corresponding PHP server side code:
<?php
class Test1 {
// Stores instance of PEAR::SOAP Server
var $soapServer;
// Constructor builds PEAR::SOAP Server
function Test1 () {
// Switch off notices to all GET
error_reporting(E_ALL ^ E_NOTICE);
// Instantiate PEAR::SOAP SOAP_Server
$this->soapServer=new SOAP_Server;
// Build the object map (using this instance) + add a namespace
$this->soapServer->addObjectMap($this,'http://www.phppatterns.com#Test1');
//$this->soapServer->addObjectMap($this,'http://tempuri.org');
// Turn on the server
$this->soapServer->service($GLOBALS['HTTP_RAW_POST_DATA']);
}
function serverTimestamp() {
return time();
}
function hello($name) {
return 'Hello '.$name;
}
function hello1() {
return 'Hello from PEAR';
}
}
?>
Owain Perry wrote:
> Norb,
> I can confirm that I have got GSOAP 2.4 & 2.5 working fine with PEAR::Soap,
> but I have only been passing strings around and not really tested any other
> data types. Apart from Attachments which don't seem to work that well as
> PEAR::SOAP doesn't build the options array that gsoap expects, but this can
> be worked around. let me know if you need some code.
> O.
> -----Original Message-----
> From: PHPDiscuss - PHP Newsgroups and mailing lists
> [mailto:nblam@austin.rr.com]
> Sent: 27 April 2004 03:00
> To: soap@lists.php.net
> Subject: [SOAP] GsoaP/PEAR::SOAP interoperability
> I've been trying to get my C++ gsoap client request to work with my PHP
> PEAR::SOAP server response.
> Has anyone ever tried this and get it to work? Here are the details:
> GSOAP request:
> <?xml version="1.0" encoding="UTF-8"?>
> <SOAP-ENV:Envelope
>
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
>
> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
>
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:ns4="http://www.phppatterns.com#Test1">
> <SOAP-ENV:Body id="_0">
> <hello
> xmlns="http://www.phppatterns.com#Test1">
> <param-1>bonnie girl</param-1>
> </hello>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
> PEAR::SOAP response:
> HTTP/1.1 200 OK
> Date: Tue, 27 Apr 2004 01:50:52 GMT
> Server: Apache/1.3.27 (Unix) PHP/4.3.1 DAV/1.0.3 mod_ssl/2.8.14
> OpenSSL/0.9.6b
> X-Powered-By: PHP/4.3.1
> Status: 200 OK
> Content-Length: 561
> Connection: close
> Content-Type: text/xml; charset=UTF-8
> <?xml version="1.0" encoding="UTF-8"?>
> <SOAP-ENV:Envelope
>
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:ns4="http://www.phppatterns.com#Test1"
>
> SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
> <SOAP-ENV:Body>
> <ns4:helloResponse>
> <return xsi:type="xsd:string">Hello bonnie
> girl</return></ns4:helloResponse>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
> Everything looks good except GSOAP doesn't like the <return> tag
> according to the following debug message:
> Unknown element 'return' (level=3, 1)
> IGNORING element 'return'
> End element found (level=3) 'return'=''
> A more generic question:
> Has anyone ever gotten a C++ SOAP client (any SOAP implementation) to
> correct communicate with a PHP SOAP Server (Any SOAP implementation)
> Thanks in Advance
> Norb
> --
> PHP Soap Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php