[pyar] Enviar archivo via WebService SOAP

Pablo Codeiro cutrix2k en gmail.com
Mar Sep 14 12:05:58 ART 2010


Bueno, respondo que el tema fue parcialmente solucionado.

Te hemos hecho caso, y enviamos las cosas mediante un campo String comun y
corriente... decodificandolo del lado de Python con
base64.urlsafe_b64decode(), y hemos tenido que agregarle caracteres "=" por
el tema del padding. Del lado de java, utilizamos una bibloteca que
encontramos por ahi, que hacia Base64 pero no Url Safe (se soluciono
cambiando los "+" por "-" y los "/" por "_"), y lo enviamos como un string.

Chusmie un poco su biblioteca, pero no he encontrado mucha documentación al
respecto... estaria bueno ver como se usa, para armar un par de tutoriales o
cosas por el estilo. Por lo que vi, ustedes directamente crean el WSDL a
partir de tipos de datos de python, lo cual me parece copado... Creo que
estaria bueno si se documenta (me propongo a ayudar/documentar, si tienen
algun ejemplo!) un toque mas, ya que es algo que estaria bueno que esto "no
se muera". Al igual que si quieren agregarle algo para pasar archivos
(aunque, en definitiva, no es mas que una o dos lineas)...

Saludos, y gracias!

El 13 de septiembre de 2010 22:08, Mariano Reingart
<reingart en gmail.com>escribió:

> 2010/9/13 Pablo Codeiro <cutrix2k en gmail.com>:
> > Lo que querria hacer, es pasar datos de una aplicacion Java, a un
> servidor
> > en Python, via SOAP.
> > En el servidor, tenemos el siguiente codigo (de prueba, por supuesto que
> no
> > es tan simple la cosa :P) para uno de sus metodos:
> >     @soapmethod(Attachment,_returns=String)
> >     def archive_document(self,document):
> >          fname = '/home/bla'
> >         document.fileName = fname
> >         document.save_to_file()
> >         return fname
>
> Se me hace que estas usando soaplib.
> En su momento, como nos parecieron complicadas esas bibliotecas,
> desarrollamos una nueva (PySimpleSoap) justamente para poder ajustar y
> depurar mejor las cosas.
>
> > Del lado de Java, estamos encodeando un archivo, via Base64.
> > Por algun motivo que escapa a nuestros conocimientos, el archivo que se
> > envia desde java, al decodificarlo, python lo decodifica "mal" (o java lo
> > codifica mal, que es otra de las posibilidades).
>
> ¿Podés enviar los mensajes XML (algun ejemplo) para tratar de ver que
> está pasando?
> ¿Probaste probarlo con SoapUI?
>
> > Mi pregunta en estos momentos es: ¿Estamos manejando bien el objeto
> > Attachment?
>
> Como te comentaba antes, no te sabría decir porque esa librería mucho
> no la manejo
>
> Pero para este caso puntual quizas te convenga analizar lo que
> necesita Java y armar los XML manualmente con Python (que es lo que
> hicimos nosotros usano xml.dom.minidom).
>
> De nuevo, la librería que armamos te podría servir como punto de partida:
> http://code.google.com/p/pysimplesoap/source/browse/server.py
>
> También podés mandar un mensaje a soap en python.org, donde los
> desarrolladores de esa librería (y otras), te pueden aconsejar mejor.
>
> > ¿Hay alguna otra forma de realizarlo (ya sea con la clase Attachment, u
> > otra) mientras siga siendo un WebService?
>
> Podés encodearlo en base64 y pasarlo en un campo string común (que
> igualmente sería parecido a lo que esta haciendo por detrás, pero de
> manera explicita y controlable).
>
> Es mucho más fácil y compatible, y de hecho eso es lo que hizo la
> AFIP, por ej. en el caso del web service de factura electrónica, para
> enviarle los datos de acceso (un xml firmados digitalmente):
> http://code.google.com/p/pyafipws/source/browse/wsaa.py
>
> > Muchas gracias por la buena onda, mariano!
>
> De nada :-)
>
> Sds
>
> Mariano Reingart
> http://www.sistemasagiles.com.ar
> http://reingart.blogspot.com
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100914/156939a4/attachment.html>


More information about the pyar mailing list