Foros del Web » Programando para Internet » PHP »

Nusoap register a una class

Estas en el tema de Nusoap register a una class en el foro de PHP en Foros del Web. Hola chicos Soy nueva en este foro, espero que sean caballeros y me respondan Estoy creando un webservice y me funciona si lo hago por ...
  #1 (permalink)  
Antiguo 13/03/2016, 12:26
 
Fecha de Ingreso: marzo-2016
Mensajes: 3
Antigüedad: 8 años, 1 mes
Puntos: 0
Nusoap register a una class

Hola chicos

Soy nueva en este foro, espero que sean caballeros y me respondan

Estoy creando un webservice y me funciona si lo hago por procedimiento pero si lo hago orientado a objetos no se como hacerle

Intente ponerlo dentro del mismo class y tambien poniendo la funcion que invoco en una clase separada, pero no lo logro, ya también intente con doble y un solo punto, entre la clase y la funcion, no se si valga el this

Código PHP:
        $server->register("this..cpcolonia",
            array(
"cp_entrada" => "xsd:string"),
            array(
"cp_salidad" => "xsd:string"),
            
"urn:ejemplo",
            
"urn:ejemplo#cpcolonia",
            
"rpc",
            
"encoded",
            
"Informes del codigo postal"); 
y cuando consumo el webservice

Código PHP:
    $result $cliente->call("servicps..cpcolonia"$cp_entrada); 
Me arroja solo esto:

bool(false)

o en ocasiones esto:

array(4) { ["faultcode"]=> string(15) "SOAP-ENV:Client" ["faultactor"]=> string(0) "" ["faultstring"]=> string(84) "error in msg parsing: XML error parsing SOAP payload on line 1: Invalid document end" ["detail"]=> string(0) "" }


El codigo completo es:

Código PHP:
Ver original
  1. class servicps {
  2.     public function cpcolonia($info) {
  3.         global $mybb,$db,$templates;
  4.         $conacento=array("Á","É","Í","Ó","Ú","á","é","í","ó","ú","ü","Ñ","ñ");
  5.         $sinacento=array("A","E","I","O","U","a","e","i","o","u","u","N","n");
  6.         $info=str_replace($conacento,$sinacento,$info);
  7.         $infoultima=explode("|",$info);
  8.         if(preg_match("/,/i",$infoultima[0])==TRUE){
  9.             $lugares=explode(",",$infoultima[0]);
  10.             $asentamiento_busqueda=$lugares[0];
  11.             $municipio_busqueda=$lugares[1];
  12.             $sql="SELECT * FROM cps WHERE ASENTAMIENTO_SA LIKE '%".ltrim($asentamiento_busqueda)."%' AND `MUNICIPIO_SA` LIKE '%".ltrim($municipio_busqueda)."%' LIMIT 10";
  13.         }else{
  14.             $sql="SELECT * FROM cps WHERE CP LIKE '%".$infoultima[0]."%' LIMIT 10";
  15.         }
  16.         $resultado = $db->query($sql);
  17.         $tipobusquedacp=$infoultima[1];
  18.         while ($fila_res=$db->fetch_array($resultado)){
  19.             $salida.=$fila_res['asentamiento'].",".$fila_res['municipio'].",";
  20.             $salida.=$fila_res['ciudad'].",".$fila_res['estado'].",".$fila_res['cp']."|";
  21.         }
  22.         return $salida;
  23.     }
  24.  
  25.    public function servicio(){
  26.         require_once "./lib/nusoap.php";
  27.         $server = new soap_server();
  28.         $server->configureWSDL("ejemplo", "urn:ejemplo");
  29.         $server->wsdl->addComplexType('cp_entrada',
  30.                                 'complexType',
  31.                                 'struct',
  32.                                 'all',
  33.                                 '',
  34.                                 array('name' => 'info','type' => 'xsd:string'));
  35.         $server->wsdl->addComplexType('cp_salidad',
  36.                                 'complexType',
  37.                                 'struct',
  38.                                 'all',
  39.                                 '',
  40.                                 array('name' => 'salida','type' => 'xsd:string'));
  41.         $server->register("this..cpcolonia",
  42.             array("cp_entrada" => "xsd:string"),
  43.             array("cp_salidad" => "xsd:string"),
  44.             "urn:ejemplo",
  45.             "urn:ejemplo#cpcolonia",
  46.             "rpc",
  47.             "encoded",
  48.             "Informes del codigo postal");
  49.         $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)? $HTTP_RAW_POST_DATA : ”;
  50.         $server->service($HTTP_RAW_POST_DATA);
  51.     }  
  52. }

Consumo completo
Código PHP:
Ver original
  1. $cliente = new nusoap_client("http://localhost/WIO/SIPROCESA/CPS/servi_cps3.php?wsdl");
  2.      
  3.     $error = $cliente->getError();
  4.     if ($error) {
  5.         echo "<h2>Constructor error</h2><pre>" . $error . "</pre>";
  6.     }
  7.     $cp_entrada = array( "cp_entrada" => array('info'=> 20000));
  8.     $result = $cliente->call("servicps..cpcolonia", $cp_entrada);
  9.     var_dump($result);

Última edición por ChicaSexual; 13/03/2016 a las 14:25
  #2 (permalink)  
Antiguo 14/03/2016, 20:13
 
Fecha de Ingreso: marzo-2016
Mensajes: 3
Antigüedad: 8 años, 1 mes
Puntos: 0
Respuesta: Nusoap register a una class

Y luego porque ni me respondieron, que feos eee
  #3 (permalink)  
Antiguo 14/03/2016, 20:44
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Nusoap register a una class

Porque no estamos obligados a responder.
Muchos de acá no tenemos idea de lo que tu código hace, y eso de que seas mujer qué? Eso ha de funcionar en los juegos online, pero aquí no, todos parejos.

Ojalá puedas encontrar una respuesta eh
  #4 (permalink)  
Antiguo 15/03/2016, 10:01
 
Fecha de Ingreso: marzo-2016
Mensajes: 3
Antigüedad: 8 años, 1 mes
Puntos: 0
Respuesta: Nusoap register a una class

Primero eso demuestra que en este foro, hay algunos usuarios que no les interesa ayudar a otros usuarios, que se supone que es el objetivo del foro, sin pensar el genero o la condicion social, pero ya en este foro ya se esta perdiendo el objetivo de ayudar al usuario ¿a poco no?

Mi duda va relacionada al uso del WebService NUSOAP, quiero invocar a una funcion que esta en una clase, suponiendo que el REGISTER del NUSOAP lo hago tambien en una una funcion perteneciente a una clase, en la documentacion dice que se debe separar el nombre de la clase del de la funcion con dos puntos y en otro lado lei que eran un punto

Normalmente se invoca una funcion de una clase asi, cuando pertenece a la misma clase

$this->funcion()

o cuando es de diferente clase

$clase->funcion()

para NUSOAP debe ser asi

$server->register("this..cpcolonia",

o tambien puede ser asi

$server->register("this.cpcolonia",

pero me da el error que mencione arriba, por lo que estoy presintiendo que no puedo invocar a nusoap desde una funcion dentro de una clase

Saludos y gracias de antemano, por su "amable" respuesta
  #5 (permalink)  
Antiguo 15/03/2016, 15:53
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Nusoap register a una class

Como te repito, yo no tengo idea de lo que hablas, me hace falta mucho para llegar a lo que describes. Por lo tanto, aunque tenga todas las ganas de ser un caballero y de ayudar a todas las personas que existan, no puedo

Y el objetivo del foro no se ha perdido, todos tenemos algo qué hacer, y nos damos unos minutos para checar el foro y ver en qué colaborar, pero no nos puedes obligar a responderte. ¿Quieres alguien que te resuelva tus dudas 24/7? Se llama Freelancer

De nada
  #6 (permalink)  
Antiguo 15/03/2016, 18:02
 
Fecha de Ingreso: mayo-2013
Mensajes: 169
Antigüedad: 11 años
Puntos: 25
Respuesta: Nusoap register a una class

Cita:
Iniciado por ChicaSexual Ver Mensaje
Primero eso demuestra que en este foro, hay algunos usuarios que no les interesa ayudar a otros usuarios, que se supone que es el objetivo del foro, sin pensar el genero o la condicion social, pero ya en este foro ya se esta perdiendo el objetivo de ayudar al usuario ¿a poco no?

[...]

Saludos y gracias de antemano, por su "amable" respuesta
Estas pidiendo en un foro de php general que te resuelvan una duda sobre una libreria de terceros que nisiquiera es generica de PHP ¿y te sorprende que la gente no responda? Con tantos frameworks, toolkits y librerias qe existen ¿en serio crees que todos sabemos nusoap? Seguramente ni el 5% de los miembros de este foro tengan conocimientos o experiencia de dicha libreria.

Ahora, ojo, yo no tengo conocimientos de nusoap, pero ¿has probado a poner el require_once "./lib/nusoap.php"; al principio del todo, y no solamente en la función? Al menos es lo único raro que veo asi por encima en tu codigo.
  #7 (permalink)  
Antiguo 15/03/2016, 18:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Nusoap register a una class

Yo lo único que entendí fue lo siguiente, por un lado registras: "this..cpcolonia" pero por otro lado quieres usar "servicps..cpcolonia".

Eso no tiene nada de sentido, ¿por qué?

Ambos son valores textuales, son texto y nada más: no son métodos.

Es absurdo quererlo comparar con declaraciones tipo "$this" y "$clase" porque son cosas diferentes: una cadena de texto no es una método de una clase o instancia.

Sin leer el manual apostaría que únicamente debes colocar un nombre válido con el cual identificar dichas llamadas (o métodos si les quieres llamar así) y usar el mismo nombre de manera consistente.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: class, nusoap, register
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 20:35.