Foros del Web » Programando para Internet » PHP »

problema con servicio web

Estas en el tema de problema con servicio web en el foro de PHP en Foros del Web. Hola. Estoy intentando hacer un servicio web que haga una consulta a una bd y me devuelva los datos. El caso es que no me ...
  #1 (permalink)  
Antiguo 15/03/2012, 12:38
 
Fecha de Ingreso: agosto-2007
Mensajes: 19
Antigüedad: 12 años, 3 meses
Puntos: 0
problema con servicio web

Hola. Estoy intentando hacer un servicio web que haga una consulta a una bd y me devuelva los datos. El caso es que no me devuelve nada. Aqui os dejo el codigo.

Parte del servidor:

<?php
require_once('../../Tools/nusoap.php');
// Incorporar la biblioteca nusoap al script, incluyendo nusoap.php (ver imagen de estructura de archivos)

// Modificar la siguiente linea con la direccion en la cual se aloja este script
$miURL = 'http://www.cvroncal.es';
$server = new soap_server();
$server->configureWSDL('miwebservice', $miURL);
$server->wsdl->schemaTargetNamespace=$miURL;

$bd_host = "xxx";
$bd_usuario = "xxx";
$bd_password = "xxx";
$bd_base = "xxx";


$server->wsdl->addComplexType(
'Noticia',
'complexType',
'struct',
'all',
'',
array(
'titulo' => array('name' => 'titulo', 'type' => 'xsd:string'),
'cuerpo' => array('name' => 'cuerpo', 'type' => 'xsd:string')
)
);

// Array de Sede
$server->wsdl->addComplexType(
'Noticias',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(array('ref' => 'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:Noticia[]')),'tns:Noticia');


/*
* Ejemplo 1: getRespuesta es una funcion sencilla que recibe un parametro y retorna el mismo
* con un string anexado
*/
$server->register('Bienvenido', // Nombre de la funcion
array(), // Parametros de entrada
array('return' => 'tns:Noticias'), // Parametros de salida
$miURL);
function Bienvenido(){
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
$Resultado = mysql_query("SELECT titulo,descripcion FROM Noticias ",$con);

while($MostrarFila = mysql_fetch_array($Resultado)){
$Noticias[]=array(
'titulo'=>$MostrarFila['titulo'],
'cuerpo'=>$MostrarFila['descripcion']);
}
mysql_close($con);
return $Noticias;
}

if ( !isset( $HTTP_RAW_POST_DATA ) )
$HTTP_RAW_POST_DATA = file_get_contents( 'php://input' );

$server->service($HTTP_RAW_POST_DATA);
?>


parte cliente:

<?php
// Incluimos la biblioteca de NuSOAP (la misma que hemos incluido en el servidor, ver la ruta que le especificamos)
require_once('../../Tools/nusoap.php');
// Crear un cliente apuntando al script del servidor (Creado con WSDL) -
// Las proximas 3 lineas son de configuracion, y debemos asignarlas a nuestros parametros
$serverURL = 'http://www.cvroncal.es';
$serverScript = 'EjemploWebService.php';
$metodoALlamar = 'Bienvenido';

// Crear un cliente de NuSOAP para el WebService
$cliente = new nusoap_client("$serverURL/$serverScript?wsdl", 'wsdl');
$cliente->response_timeout=60;

// 1. Llamar a la funcion getRespuesta del servidor
$respuesta = $cliente->call(
"$metodoALlamar", // Funcion a llamar
array() );

// Verificacion que los parametros estan ok, y si lo estan. mostrar rta.
if ($cliente->fault) {
echo "FALLO: <p>Codigo: (".$cliente->faultCode.")</p>";
echo "Mensaje: " .$cliente->faultstring;

} else {
$cantidad=count($result);
echo $cantidad;
?>
<table border="1">
<tr>
<th>Titulo</th>
<th>Descripcion</th>
</tr>
<?php
for($i=0;i<$cantidad;$i++){
?>
<tr>
<td><?php echo $result[$i]['titulo']?></td>
<td><?php echo $result[$i]['descripcion']?></td>
</tr>
<?php
}
?>
</table>
<?php
}

?>

He de decir que es la primera vez que intento algo asi por lo que todo es nuevo para mi y en realidad no me entero del todo, el codigo lo he ido viendo en diferentes post. He probado este servicio web devolviendo un string en vez de hacer una consulta a la bd y devolver un tipo complejo y si que funcionaba. Cuando lo he cambiado ya no devuelve nada como vereis ago un echo $cantidad y esto muestra 0 y no se el por que. Gracias.
  #2 (permalink)  
Antiguo 16/03/2012, 03:12
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 9 años, 2 meses
Puntos: 331
Respuesta: problema con servicio web

Utiliza error_reporting y display_errors para ver qué está sucediendo. Modifica todas las llamadas a funciones de mysql con la forma:

$query = mysql_query($link) or die(mysql_error());

para saber si hay errores.
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: mysql, servicio, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:51.