• Publicidad

a vueltas con el cliente de un web service

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

a vueltas con el cliente de un web service

Notapor rafaelspock » 2006-02-22 02:08 @130

saludos again

os comento lo que tengo entre manos.

tengo una base de datos en postgresql formada por una base de datos y en ella una tabla de 4 campos de datos.

intencion

en un servidor remoto han implimentado un web service para que yo acceda a el invocandolo y metiendo los datos de cada registro de la base de datos.

para esto me han proporcionado un fichero xsd, que segun parece me indica algo asi como

fichero : webservice.xsd

<?xml version="1.0" encoding="utf-8"?>

<shema targetNamespace="http://xxxxxx.com/webservice xmlns:impl=

<http://xxxxxx.com/webservice >
xmlns:wsdl=

<http://shemas.xmlsoap.org/wsdl/> xmlns:soapenc= <http://xchemas.xmlsoap.org/soap/encoding/>
xmlns=

<http://www.w3.org/2001/XMLShema> />
<complexType name="ENTRADA">

<sequence>

<element name="codigo" nillable="true" type="string"/>

<element name="nombre" nillable="true" type="string"/>

<element name="apellidos" nillable="true" type="string"/>

<element name="calle" nillable="true" type="string"/>

</sequence>

</complexType>

<complexType name="SALIDA">

<sequence>

<complexType name="EXCEPCION">

<sequence>

<element name="errorcodigo" nillable="true" type="string"/>

<element name="errornombre" nillable="true" type="string"/>

<element name="errorapellidos" nillable="true" type="string"/>

<element name="errorcalle" nillable="true" type="string"/>

</sequece>

</complexType>

</schema>




aparte tengo un fichero wsdl donde viene reflejado en webservice definido o eso creo yo.

webservice.wsdl

<?xml version="1.0" enconding="utf-8" ?>

<wsdl:definitions targetNameespace=

<http://xxxxxx.com/webservice> xmlns= <http://shemas.xmlsoap.org/wsdl> xmlns:serv=<http://xxxxxxx.com/webservice > xmlns:soapenc=<http://schemas.xmlsoap.org/soap/enconding/> xmlns:wsdl=<http://shemas.xmlsoap.org/wsdl> xmlns:wsdlsoap=" http://shemas.xmlsoap.org/wsdl/soap/">
<import namespace=

<http://xxxxxx.com/webservice> location="file:webservice.xsd">
<wsdl:message name="webservicepregunta">

<wsdl:part name="in0" type="serv:ENTRADA" />

</wsdl:message>

<wsdl:message name="webservicerespuesta">

<wsdl:part name="out0" type="serv:SALIDA" />

</wsdl:message>

<wsdl:message name="webservicefallo">

<wsdl:part name="fault0" type="serv:EXCEPCION" />

</wsdl:message>

<wsdl:portType name="webservice">

<wsdl:operation name="webservice" parameterOrder="in0">

<wsdl:input message="serv:webservicepregunta" name="webservicepregunta"/>

<wsdl:output message="serv:webservicerespuesta" name="webservicerespuesta"/>

<wsdl:fault message="serv:webservicefallo" name="webservicefallo"/>

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="webserviceSoapBinding" type="serv:webservice">

<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="webservice">

<wsdlsoap:operation soapAction="webservice"/>

<wsdl:input name="webservicepregunta">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://xxxxxxxxx.com/webservice " use="encoded"/>

</wsdl:input>

<wsdl:output name="webservicerespuesta">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://xxxxxxxxxx.com/webservice " use="encoded"/>

</wsdl:output>

<wsdl:fault name="webservicefallo">

<wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://xxxxxxx.com/webservice " use="encoded"/>

</wsdl:fault>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="webserviceService">

<wsdl:port binding="serv:webserviceSoapBinding" name="webservice">

<wsdlsoap:address location="http://xxxxx.com/webservice"/>

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

tambien tengo un certificado digital x.509 para poder utilizar este webservice

estoy ya que no doy pie con bola y necesito ayuda y por lo que veo estoy cada vez mas liado

he mirado como crear clientes soap como los de google, me he mirado de todo y ya no se por donde mirar.
rafaelspock
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2006-02-20 16:39 @735

Publicidad

Re: a vueltas con el cliente de un web service

Notapor explorer » 2006-02-22 07:08 @339

Si no encuentras ayuda por aquí, entra en http://www.perlmonks.org y deja tu pregunta (en inglés).
Yo no puedo ayudarte mucho. Lo del SOAP se me quedó en el asunto de 'pendientes de probar' en el 2001 :(
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: a vueltas con el cliente de un web service

Notapor explorer » 2006-02-22 07:39 @360

Aquí he encontrado algunos ejemplos...
http://www.perlmonks.org/index.pl?node_id=91732
http://soaplite.com/features.html
http://search.cpan.org/~byrne/SOAP-Lite ... AP/Lite.pm (hay un ejemplo de 4 líneas de cómo usar el wsdl).
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: a vueltas con el cliente de un web service

Notapor explorer » 2006-02-22 08:12 @383

rafaelspock escribiste:para esto me han proporcionado un fichero xsd, que segun parece me indica algo asi como

fichero : webservice.xsd
Este fichero define cómo son los datos que se transmiten.
rafaelspock escribiste:aparte tengo un fichero wsdl donde viene reflejado en webservice definido o eso creo yo.

webservice.wsdl
Efectivamente. Ahí se define el nombre de las operaciones.
rafaelspock escribiste:tambien tengo un certificado digital x.509 para poder utilizar este webservice

estoy ya que no doy pie con bola y necesito ayuda y por lo que veo estoy cada vez mas liado

he mirado como crear clientes soap como los de google, me he mirado de todo y ya no se por donde mirar.

Pues debería ser tan 'sencillo' como:
Código: Seleccionar todo
#!/usr/bin/perl -w
use SOAP::Lite;

print SOAP::Lite
       ->service('file:/home/user/rafael/webservice.wsdl')
       ->webservice('codigo', 'nombre', 'apellidos', 'calle');

Si el fichero wsdl está en otro URL, pues se pone en lugar del file:...
Lo que no he visto por ninguna parte de tu webservice.wdl es el url al https...
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

ok, seguimos en la busqueda

Notapor rafaelspock » 2006-02-22 08:16 @386

gracias, sigo en la busqueda

te tengo informado y en mis oraciones

gracias.again
rafaelspock
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2006-02-20 16:39 @735

Re: a vueltas con el cliente de un web service

Notapor explorer » 2006-02-23 06:14 @302

En perlmonks.org siguen apareciendo artículos. No dejes de buscar allí.
http://www.perlmonks.org/index.pl?node_id=532098
http://www.perlmonks.org/index.pl?node_id=532144
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

thx , seguimos en ello

Notapor rafaelspock » 2006-02-25 19:55 @872

a proposito fabulos el modulo XML::Twig

no crees ?
rafaelspock
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2006-02-20 16:39 @735

Re: a vueltas con el cliente de un web service

Notapor explorer » 2006-02-26 13:17 @595

Yo hasta ahora sólo he utilizado el XML::Simple, pero porque sólo he necesitado cosas simples. Tenía al XML::Twig en la lista de espera para cosas más importantes, pero no han llegado...
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

seguimos dando vueltas , pero esta casi cercado

Notapor rafaelspock » 2006-03-01 13:10 @590

Segun he leido tengo que instalar el modulo Crypt::SSLeay.

pero a la hora de instalarlo me da lo siguiente no me da problemas pero al ejecutar el script perl me da lo siguiente


Can't locate Cryp/SSLeay/X509.pm in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at nuevo1.pl line 2.
BEGIN failed--compilation aborted at nuevo1.pl line 2.


supongo que sera algo de configuracion, pero no doy con ello.

Mi sistema es un red hat, y he visto en el manual de este modulo algo especial para este sistema .

alguna idea ?

segun parece este modulo es vital para poder utilizar certificados digitales.

gracias again
rafaelspock
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2006-02-20 16:39 @735

Re: a vueltas con el cliente de un web service

Notapor explorer » 2006-03-01 14:30 @646

Vete a la línea 2 de tu programa y cambia

use Cryp::SSLeavy;

por

use Crypt::SSLeavy;
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

Siguiente

Volver a Avanzado

¿Quién está conectado?

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