Re: GsoaP/PEAR::SOAP interoperability

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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:  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

-- 
PHP Soap Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Kernel Newbies]     [PHP Database]     [Yosemite]

  Powered by Linux