PEAR::SOAP returns only 'Object' as answer .....

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

 



Hi !

I am new to Web Services. I ve set up a PHP Installation on Windows
(PHP 4.3.2 and Apache 1.3.29) and I have tested PHP alone and then installed
PEAR.

I've set up several SOAP Testscripts that I found on WebSites and in
PHP-Books
to get a PHP Client-Script and a PHP Server-Script communicate over Web
Services
(using PEAR::SOAP). I had no success. Either there were errors or senseless
answers
(the returned variable was probably null) :



Here is my major-problem : My Helly World example (listed at the end)
produces no errors,
But instead of returning "Hello World" as answer, it only returns "Object",
It
makes no diffence, what I want to submit, there s only the answer
"Object"...
(i ve tried that on linux,too. same result)


On the other side : Now I am sure, that PEAR works fine, because the example
at
http://cvs.php.net/cvs.php/pear/SOAP/example?login=2 worked great.
(Thank God, all other examples before didn t)


I guess, there has something changed in the PEAR::SOAP Syntax,...?

Please help...

Thanx in advance !

Regards,

Arne

-----

Example Code (that fails) ::

(Client)

<?

    require_once('SOAP/Client.php');

/* Create a new SOAP client using PEAR::SOAP's SOAP_Client-class: */
    $client = new SOAP_Client('http://localhost/pearsoap-hello-server.php');


/* Define the parameters we want to send to the server's
helloWorld-function.
   Note that these arguments should be sent as an array: */
    $params = array('inmessage'=>'World');

/* Send a request to the server, and store its response in $response: */
   $response = $client->call('helloWorld',$params,array('namespace' =>
'urn:helloworld'));

/* Print the server-response: */
   print $response;

?>

(Server)

<?

    /* Include PEAR::SOAP's SOAP_Server class: */
    require_once('SOAP/Server.php');


    /* To define a new SOAP service with PEAR::SOAP, we need to
       construct a class that defines the characteristics for our
       service. An instance of this class is then used by SOAP_Server
       to create a new SOAP service: */
    class SOAP_Hello_Server
    {

    /* $dispatch_map helps SOAP_Server figure out which parameters
           are used with the methods: */
    var $dispatch_map = array();

    /* dispatch mapping is optional.  It is used in non-wsdl servers to
allow
     for being more explicit with what arguments and types are passed in and
out.*/
    /* Here's the constructor for out class. It is used to define
       $dispath_map: */
    function SOAP_Hello_Server()
    {
       $this->dispatch_map['helloWorld'] = array('in'    =>
array('inmessage'=>'string'),
                                           'out'   =>
array('outmessage'=>'string'));
    }

          /* Of course, we also need to define all the functions that should
           be requestable through our server: */
        function helloWorld($inmessage)
        {
            /* Generate a SOAP error if the argument was not valid: */
            if($inmessage == '')
            {
                /* The SOAP error is generated by the SOAP_Fault class: */
                $fault = new SOAP_Fault('You must supply a valid
string!','12345');
                return $fault->message();
            }
            else
            {
                /* If the argument is okay, we submit out return message: */
                return "Hello $inmessage!";
            }
        }
    }

    /* Create a new SOAP server using PEAR::SOAP's SOAP_Server class: */
    $server = new SOAP_Server();

    /* Create an instance of our class: */
    $soaphelloserver = new SOAP_Hello_Server();

    /* Register this instance to the server class: */
    $server->addObjectMap($soaphelloserver,array('namespace'=>
'urn:helloworld')););

    /* The following line starts the actual service: */
    $server->service($HTTP_RAW_POST_DATA);


?>

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