• Publicidad

Soap::lite dando problemas al iniciar cliente

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Re: Soap::lite dando problemas al iniciar cliente

Notapor explorer » 2011-05-16 14:50 @659

¿Por qué has quitado el push()?

La asignación

@arraycodigos = $codigo ;

es la que hace que solo se guarde el último $codigo dentro de @arraycodigos.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Re: Soap::lite dando problemas al iniciar cliente

Notapor scout » 2011-05-16 15:25 @684

ok, sacando la línea @arraycodigos = $codigo ;
y dejando push ( @arraycodigos, $codigo ) ;

El resultado desde el cliente es el primer registro solamente, ¿¿hay alguna manera de imprimir el listado completo... o de corroborar qué está pasando o no pasa entre cliente servidor...??

Código de servidor.pl

while (($codigo) = $sth->fetchrow_array) {
push ( @arraycodigos, $codigo ) ;
}
return @arraycodigos ;

Código cliente:

foreach my $valor (@$arraycodigos) {
print "$valor\n";
};
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Re: Soap::lite dando problemas al iniciar cliente

Notapor explorer » 2011-05-16 15:38 @693

Data::Dumper te puede indicar el contenido de las variables.

Creo recordar que se puede activar un modo de depurado o debug. Busca en estos foros por Soap::Lite, pues hay algunos ejemplos de cómo activarlo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Soap::lite dando problemas al iniciar cliente

Notapor scout » 2011-05-16 16:17 @720

Hummm, mira, creo que el problema lo tengo en la lógica o hay algo que no sé cómo poner... realicé una prueba con un array armado previamente para evitar errores en la respuesta o armado de arrays...

servidor
@arreglo = ('A','B','C');
return @arreglo ;

cliente
foreach my $valore (@$arreglo) {print "$valore\n";};

resultado
A

Es algo raro porque si fuera un error de código apareciera algo diferente y no el primer registro del array... Hummm seguiré buscando...

Hummm usando
use Data::Dumper;
print Dumper(@data);

en el cliente sigue saliendo el primer registro...

Seguiré buscando y probando para pasar arrays completos... o algo más que un registro.
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Re: Soap::lite dando problemas al iniciar cliente

Notapor explorer » 2011-05-16 17:05 @753

Es que yo creo recordar que las estructuras complejas (más complejas que un escalar) no se podían enviar de esa manera, como lo estás haciendo tu, desplegadas, sino que había que devolver la referencia al array o hash que las contiene.

En este hilo expuse un servidor que pasaba un hash al cliente, así que supongo que pasar un array será lo mismo: pasando la referencia.

Yo, desde luego, no pienso meterme más con SOAP. Ya tuve bastante en aquella época.

Te aconsejo que te mires los hilos de SOAP de estos foros. Usa el sistema de búsqueda.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Soap::lite dando problemas al iniciar cliente

Notapor scout » 2011-05-16 17:47 @783

A ver... Y cuando tienes que montar algún servicio que sirva a aplicaciones en distintos lenguajes ¿qué me recomienzas que utilice... para armar un servicio?
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Re: Soap::lite dando problemas al iniciar cliente

Notapor scout » 2011-05-16 17:51 @785

Con el debug entiendo ver en el cliente que un array con a,b,c pasan correctamente... ahora solo me falta descubrir cómo tomo ese array completo... ya que doy por hecho que pasa correctamente... según el debug.

Sintáxis: [ Descargar ] [ Ocultar ]
Using xml Syntax Highlighting
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
  4.  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  5.  soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
  6.  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  7. >
  8. <soap:Body>
  9. <altasResponse xmlns="http://x.x.x.xx:80/servidor">
  10.     <soapenc:Array soapenc:arrayType="xsd:string[3]" xsi:type="soapenc:Array">
  11.         <item xsi:type="xsd:string">A</item>
  12.         <item xsi:type="xsd:string">B</item>
  13.         <item xsi:type="xsd:string">C</item>
  14.     </soapenc:Array>
  15. </altasResponse>
  16. </soap:Body>
  17. </soap:Envelope>
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


La suma de 3 y 4 es ARRAY(0x2773e64)
Última edición por explorer el 2011-05-16 18:00 @792, editado 1 vez en total
Razón: Formatear en XML
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Re: Soap::lite dando problemas al iniciar cliente

Notapor explorer » 2011-05-16 17:57 @789

Lo más moderno, hoy en día, es usar JSON.

En CPAN hay, en estos momentos, 56 distribuciones con la palabra "SOAP", en el nombre, mientras que de "JSON" hay 89.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Soap::lite dando problemas al iniciar cliente

Notapor explorer » 2011-05-16 18:04 @794

Bueno, pues si el array se pasa bien, quizás es a la hora de recogerlo.

Ya te he dicho que yo lo hice pasando (y recibiendo) una referencia al array.

Ahora bien, yo he hecho muy poco de SOAP, así que no sé decirte si es posible recibirlo de otra manera. Ahora mismo no sé si se puede leer de forma directa o si como comentaba en el otro hilo, antes hay que deserializarlo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Soap::lite dando problemas al iniciar cliente

Notapor scout » 2011-05-16 18:21 @806

¡Upa!, si por referencia va bien. Le puse un count al select de la consulta SQL y me trajo el total.

Luego sería cuestión de ir armando el esquema.... creo que se tornaría un poco lento pero me sirve de todas formas... En caso de querer traer una línea completa, digamos que se haría un poco pesado el tema... ¿¿no??

Imaginemos que tengo que traer 30 registros con 10 columnas... me parece que por referencia la pasaré de fiesta con una consulta así... pero todo bien... si quiere las cosas armadas me tendría que dedicar a otra cosa... ¡je,je!


Ahora veré JSON, a ver como va ese tema... Gracias y sigo aprendiendo...
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

AnteriorSiguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 29 invitados