Foros del Web » Programando para Internet » PHP »

PHP NuSoap WebService con Oracle Error al desplegar dato

Estas en el tema de PHP NuSoap WebService con Oracle Error al desplegar dato en el foro de PHP en Foros del Web. Buenas tardes colaboradores del foro necesito su ayuda por favor, estoy empezando con servicios web basados en PHP tengo este ejemplo que estoy probando: server.php ...
  #1 (permalink)  
Antiguo 07/07/2011, 14:15
Avatar de PICOROFG  
Fecha de Ingreso: febrero-2008
Ubicación: Quito, Ecuador, Ecuador
Mensajes: 120
Antigüedad: 16 años, 2 meses
Puntos: 0
PHP NuSoap WebService con Oracle Error al desplegar dato

Buenas tardes colaboradores del foro necesito su ayuda por favor, estoy empezando con servicios web basados en PHP tengo este ejemplo que estoy probando:

server.php

Código PHP:
<?php
error_reporting
(E_ALL);
require_once(
'nusoap/lib/nusoap.php');
//creo el objeto de tipo soap_server
$namespace 'http://localhost:8080/usfq_ws';
$server = new soap_server;
$server->configureWSDL("UnWebServiceSimple"$namespace); 
//registro la función que vamos a implementar
$server->register('ver');

function 
ver($pidm){

    
$conn oci_connect('user''pass','name');
    
$query "SELECT apellidos, nombres  FROM tabla WHERE PIDM = '$pidm'";
    
$stid oci_parse($conn$query);
    
oci_execute($stidOCI_DEFAULT);
        while (
$row oci_fetch_array($stidOCI_ASSOC)) {
        foreach (
$row as $item) {
        return 
$item;

        }
    }
    
oci_free_statement($stid);
    
oci_close($conn);

    
}
//llamo al método service de la clase nusoap
$server->service($_SERVER['HTTP_USER_AGENT']);
?>
client.php

Código PHP:
<title>Cliente WS </title><form action="client.php" method="get" name="formulario">
<label class="fc_main"></label>
<table width="80" >
  <tr>
    <td class="fc_main">Pidm</td>
    <td><input name="pidm" type="text"  value="" /></td>
  </tr>
  <tr>
    <td colspan="2"><div align="center">
      <input name="enviar" type="submit" value="Ingresar" />
    </div></td>
    </tr>
</table>
</form>

<?php
//incluyo la clase nusoap.php
require_once('nusoap/lib/nusoap.php');
//creamos el objeto de tipo soapclient.
$soapclient = new soapclient'http://localhost:8080/usfq_ws/server.php');
$soapclient->getError();

//Utilizo el isset($_GET['nombre']) para esperar que se presione el boton
if (isset($_GET['pidm'])) { 
//Llamo la función que había implementado en el Web Service e imprio lo que devuelve
$result$soapclient->call('ver',array( 'pidm'=>htmlentities($_GET['pidm'])));
echo 
$result
    
}
?>
Al momento de ejecutar el cliente ingreso un valor que coincida con el pidm de la tabla para visualizar la consulta pero me regresa el dato Array he probado la consulta y funciona perfectamente....Cuál es mi error ??

Grcias por su Ayuda
  #2 (permalink)  
Antiguo 07/07/2011, 14:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: PHP NuSoap WebService con Oracle Error al desplegar dato

Usa var_dump($result); para que veas el resultado.

También te comento que tu función ver() esta mal diseñada, porque estas haciendo return; dentro de tu while y nunca llevas a liberar tu consulta.

Saludos.
  #3 (permalink)  
Antiguo 07/07/2011, 14:38
Avatar de PICOROFG  
Fecha de Ingreso: febrero-2008
Ubicación: Quito, Ecuador, Ecuador
Mensajes: 120
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: PHP NuSoap WebService con Oracle Error al desplegar dato

Gracias por responder y si me puedes ayudar en que parte puedo corregir la función??.

Cambié la variable con var_dump() me tengo este error


array(4) { ["faultcode"]=> string(15) "SOAP-ENV:Client" ["faultactor"]=> string(0) "" ["faultstring"]=> string(95) "error in msg parsing: XML error parsing SOAP payload on line 1: Not well-formed (invalid token)" ["detail"]=> string(0) "" }

Esta mal el servicio web??

Gracias
  #4 (permalink)  
Antiguo 07/07/2011, 14:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: PHP NuSoap WebService con Oracle Error al desplegar dato

Pues todo depende de lo que quieras hacer, ahí lo que estas haciendo es una consulta a 2 columnas, pero al entrar el return solo te va a devolver la primer columna del primer row.

Te recomiendo que antes de que empieces con WebServices veas un manual de PHP básico, y posteriormente de desarrollo de software ya que esas son dudas básicas que debes de tener claras antes de meterte a cosas mas elevadas como WebServices.

Saludos.
  #5 (permalink)  
Antiguo 07/07/2011, 14:51
Avatar de PICOROFG  
Fecha de Ingreso: febrero-2008
Ubicación: Quito, Ecuador, Ecuador
Mensajes: 120
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: PHP NuSoap WebService con Oracle Error al desplegar dato

La cuestión es que también probe reemplazando la consulta tán sólo con un

Código PHP:
$dato='si';
return 
$dato
y obtengo el mismo mensaje
  #6 (permalink)  
Antiguo 07/07/2011, 14:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: PHP NuSoap WebService con Oracle Error al desplegar dato

El problema no es la función, el problema es como estas creando tu webservice, revisa bien la documentación de NuSOAP tienen ejemplos claros.

El problema de tu función es aparte.
  #7 (permalink)  
Antiguo 07/07/2011, 15:15
Avatar de PICOROFG  
Fecha de Ingreso: febrero-2008
Ubicación: Quito, Ecuador, Ecuador
Mensajes: 120
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: PHP NuSoap WebService con Oracle Error al desplegar dato

Ahora he probado con el básico ejemplo hola mundo y me sale el mismo error

array(4) { ["faultcode"]=> string(15) "SOAP-ENV:Client" ["faultactor"]=> string(0) "" ["faultstring"]=> string(95) "error in msg parsing: XML error parsing SOAP payload on line 1: Not well-formed (invalid token)" ["detail"]=> string(0) "" }


server.php

Código PHP:

//incluimos la clase nusoap.php
require_once('nusoap/lib/nusoap.php');
$namespace 'http://localhost/usfq_ws';

//creamos el objeto de tipo soap_server
$server = new soap_server;
$server->configureWSDL("UnWebServiceSimple"$namespace);
//registramos la función que vamos a implementar
$server->register('hello');

//implementamos la función
function hello ($name){
return 
"Hola $name.";
}

//llamamos al método service de la clase nusoap
$server->service($_SERVER['HTTP_USER_AGENT']); 
cliente.php

Código PHP:

//incluimos la clase nusoap.php
require_once('nusoap/lib/nusoap.php');

//creamos el objeto de tipo soapclient.
//http://www.mydomain.com/server.php se refiere a la url
//donde se encuentra el servicio SOAP que vamos a utilizar.
$soapclient = new soapclient'http://localhost/usfq_ws/s.php');

//Llamamos la función que habíamos implementado en el Web Service
//e imprimimos lo que nos devuelve
echo $soapclient->call('hello',array( 'name'=>'Mundo')); 
Fuente: http://mimatrix.blogspot.com/2006/02...on-nusoap.html

en que está mal este código???
  #8 (permalink)  
Antiguo 07/07/2011, 16:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: PHP NuSoap WebService con Oracle Error al desplegar dato

En el ejemplo usa esto: $server->service($HTTP_RAW_POST_DATA); no $server->service($_SERVER['HTTP_USER_AGENT']);

El user agent no tiene nada de información para manejar el servicio.

Saludos.
  #9 (permalink)  
Antiguo 24/11/2011, 20:06
Avatar de sublevar  
Fecha de Ingreso: diciembre-2010
Mensajes: 29
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: PHP NuSoap WebService con Oracle Error al desplegar dato

@picorofg

sabes te faltan muchas cosas sobre todo en el servicio, esta muy desordenado, deberias crear un archivo solo para las funciones ademas que no haces la creacion de los tipos y no registras el imput de parametros ni nada deberias leer bien la documentación,,,

Saludos

Etiquetas: desplegar, html, nusoap, oracle, tabla, webservice, formulario
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 00:11.