Tienes toda la razon, he avanzado algo pero me surge un problema que intentare detallar mejor
Client.php
Código PHP:
<?php
require_once('../libs/nusoap/nusoap.php');
$oSoap = new soapclient('http://localhost/Project/WS/server.php?wsdl');
/*$err = $oSoap->getError();
if ($err)
{
echo '<p><b>Error: ' . $err . '</b></p>';
}
*/
//$dato = $oSoap->call('HolaMundo',array('nombre' => 'Hollman'),'http://localhost/Project/WS/HolaMundo');
$dato=$oSoap->HolaMundo('Hollman');
$dato2=$oSoap->Buscar('Barcelona');
if ($oSoap->fault)
{
echo "Error al llamar el metodo<br/>".$oSoap->getError();
}
else
{
echo $dato;
echo $dato2;
}
?>
server.php
Código PHP:
<?php
require_once('../libs/nusoap/nusoap.php');
function HolaMundo ($nombre)
{
return "Hola ".$nombre;
}
function Buscar($query){
return $query;
}
$server = new soap_server();
$ns="http://localhost/Project/WS";
$server->configurewsdl('server');
$server->wsdl->schematargetnamespace=$ns;
$server->register('HolaMundo',array('nombre' => 'xsd:string'),array('return' => 'xsd:string'),$ns);
$server->register('Buscar',array('query' => 'xsd:string'),array('return' => 'xsd:string'),$ns);
if (isset($HTTP_RAW_POST_DATA))
{
$input = $HTTP_RAW_POST_DATA;
}
else
{
$input = implode("\r\n", file('php://input'));
}
$server->service($input);
?>
Esto me da el siguiente error
Cita: Fatal error: Uncaught SoapFault exception: [Client] Function ("Buscar") is not a valid method for this service in /var/www/Project/WS/client.php:16 Stack trace: #0 [internal function]: SoapClient->__call('Buscar', Array) #1 /var/www/Project/WS/client.php(16): SoapClient->Buscar('Barcelona') #2 {main} thrown in /var/www/Project/WS/client.php on line 16
Dice que Buscar no esta definida, pero no lo entiendo porque si que esta, es mas si en el cliente no llamo a
Código:
$dato2=$oSoap->Buscar('Barcelona');
y por supuesto no llamo a echo $dato2;
Me escribe bien el resultado de la primera funcion es decir
Alguna idea de a que se puede deber esto??
Gracias
Saludos!