Luego hice un cliente en delphi utilizando WSDLImporter, el caso es que me da el siguiente error:
Este es el codigo del servidor:
Código PHP :
<?php // Modificado para añadir la busqueda por nombre // Modificado para utilizar nuSOAP // Deshabilitar cache ini_set("soap.wsdl_cache_enabled", "0"); //llamada a librería nusoap require_once('lib/nusoap.php'); //generar instancia de soap_server $servidor = new soap_server(); $servidor->configureWSDL('codeappwsdl', 'urn:codeappwsdl'); // Conexion a la Base de Datos //function dbConnect() //{ // $conn=mysql_connect("localhost", "root", ""); // mysql_select_db('web',$conn); //} // Consultar usuarios por Nombre // SQL = SELECT * FROM `agenda` WHERE nombre LIKE '%dr%' function ConsultaUsuarios($nom) { //-----------------------------llamada a BD--------------------------------- //$conn = dbConnect(); $arrusers = array(); $conn=mysql_connect("localhost", "root", ""); mysql_select_db('web',$conn); $sql = "SELECT * FROM `web`.`agenda` WHERE nombre LIKE '$nom'"; $result=mysql_query($sql,$conn); while ($fila= mysql_fetch_array($result)){ $id=$fila['id']; $nombre=$fila['nombre']; $apellidos=$fila['apellidos']; $telefono=$fila['telefono']; $extension=$fila['extension']; $departamento=$fila['departamento']; $interno=$fila['interno']; $email=$fila['email']; // Cada registro de información se introduce en un array asociativo $arrusers[] = array('Id'=>$id, 'Nombre'=>$nombre, 'Apellidos'=>$apellidos, 'Telefono'=>$telefono,'Extension'=>$extension, 'Departamento'=>$departamento,'Interno'=>$interno,'Email'=>$email); } /*----------------------------fin llamada a BD-------------------------------*/ return $arrusers; } // Consultar un usuario por ID function ConsultaUsuario($id) { $arrusers = array(); //array para guardar los datos /*-----------------------------llamada a BD---------------------------------*/ $conn=mysql_connect("localhost", "root", ""); mysql_select_db('web',$conn); $sql="SELECT * FROM `web`.`agenda` WHERE id=$id"; $result=mysql_query($sql,$conn); while ($fila= mysql_fetch_array($result)){ $id=$fila['id']; $nombre=$fila['nombre']; $apellidos=$fila['apellidos']; $telefono=$fila['telefono']; $extension=$fila['extension']; $departamento=$fila['departamento']; $interno=$fila['interno']; $email=$fila['email']; //Cada registro de información se introduce en un array asociativo $arrusers[] = array('Id'=>$id, 'Nombre'=>$nombre, 'Apellidos'=>$apellidos, 'Telefono'=>$telefono, 'Extension'=>$extension, 'Departamento'=>$departamento, 'Interno'=>$interno, 'Email'=>$email); } /*----------------------------fin llamada a BD-------------------------------*/ return $arrusers; } // Namespace del servicio $ns = "http://localhost:8080/webservice/listado.php?wsdl"; // Establecer nombre y namespace al servicio $servidor->configureWSDL('Consulta de usuarios',$ns); // configurar la estructura de los datos, // este arreglo es de tipo asociativo y contiene el nombre y tipo de dato. $servidor->wsdl->addComplexType( 'Estructura', 'complexType', 'struct', 'all', '', array( 'Id' => array('name' => 'id', 'type' => 'xsd:integer'), 'Nombre'=>array('name' => 'nombre', 'type' => 'xsd:string'), 'Apellidos'=>array('name' => 'apellidos', 'type' => 'xsd:string'), 'Telefono'=>array('name' => 'telefono', 'type' => 'xsd:string'), 'Extension'=>array('name' => 'extension', 'type' => 'xsd:integer'), 'Departamento'=>array('name' => 'departamento', 'type' => 'xsd:string'), 'Interno'=>array('name' => 'interno', 'type' => 'xsd:integer'), 'EMail'=>array('name' => 'email', 'type' => 'xsd:string') ) ); //configurar arreglo de la estructura $servidor->wsdl->addComplexType( 'ArregloDeEstructuras', 'complexType', 'array', 'sequence', 'http://schemas.xmlsoap.org/soap/encoding/:Array', array(), array( array('ref' => 'http://schemas.xmlsoap.org/soap/encoding/:arrayType', 'wsdl:arrayType' => 'tns:Estructura[]' ) ),'tns:Estructura'); // registrar la funcion de consulta de usuario (por ID) $servidor->register('ConsultaUsuario', array('id'=>'xsd:integer'), //tipo de dato entrada array('return'=>'tns:ArregloDeEstructuras'), //tipo de dato salida $ns, false, 'rpc', //tipo documento 'literal', //tipo codificacion 'Documentacion de consultaUsuarios') ; //documentacion // registrar la funcion de consulta de usuario (por nombre) $servidor->register('ConsultaUsuarios', array('nom'=>'xsd:string'), //tipo de dato entrada array('return'=>'tns:ArregloDeEstructuras'), //tipo de dato salida $ns, false, 'rpc', //tipo documento 'literal', //tipo codificacion 'Documentacion de consultaUsuarios') ; //documentacion //Establecer servicio if (isset($HTTP_RAW_POST_DATA)) { $input = $HTTP_RAW_POST_DATA; }else{ $input = implode("\r\n", file('php://input')); } $servidor->service($input); ?>
La verdad no se que puede ser, como veran la idea es buscar por id y por nombre, y lo que sale en la imagen parece ser un mensaje de error cortado.
Gracias