Estoy haciendo un WebService Cliente - Servidor con SOAP y no se me conecta el cliente con el servidor. Es un pequeño ejemplo para poder tirar hacia delante con la practica pero no hay manera de que se muestre ningún resultado desde el cliente.
Si alguien pudiera ayudarme se lo agradecería muchísimo.
El Client.php es:
Código PHP:
<?php
require_once("nusoap/lib/nusoap.php"); //incloem les llibreries de NuSOAP
$soapWSDL = 'http://localhost/Practica3/Server.php'; //specs WSDL
$proxyhost = ''; //no necessitem cap proxy
$proxyport = '';
$proxyusername = '';
$proxypassword = '';
$client = new nusoap_client($soapWSDL, 'wsdl', $proxyhost, $proxyport, $proxyusername, $proxypassword); //creem un client vinculat al wsdl
$err = $client->getError();
if ($err) {
echo '<p><b>Constructor error: ' . $err . '</b></p>';
}
//cridem al mètode remot
$result = $client->call('Suma', array('a' => 1, 'b' => 2), '', '');
//mostrem els resultats sense format
print_r("<h2>Practica SOAP, WebService</h2><br><br>");
print_r("El Resultado de Suma es: " . $result);
?>
Código PHP:
<?php
$namespace = 'http://localhost/Practica3'; //URI del server
require_once("nusoap/lib/nusoap.php");
$server = new soap_server();
$server->debug_flag = false;
$server->configureWSDL("UnWebServiceSimple", $namespace);
$server->wsdl->schemaTargetNamespace = $namespace;
//registrem un nou mètode que oferirà el servidor
$server->register('Suma',
// method name
array('a' => 'xsd:int', 'b' => 'xsd:int'),
// input parameters
array('return' => 'xsd:int'),
// output parameters
$namespace,
// namespace
$namespace . '#Suma',
// soapaction
'rpc',
// style
'encoded',
// use
'Una suma simple'
// documentation
);
//Cos de la funció a oferir
function Suma($a, $b)
{
return intval($a)+intval($b);
}
//gestionar les dades que passin com a paràmetres HTTP
$HTTP_RAW_POST_DATA=isset($GLOBALS['HTTP_RAW_POST_DATA'])?
$GLOBALS['HTTP_RAW_POST_DATA'] : '';
$server->service($HTTP_RAW_POST_DATA);
exit();
?>