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