Duda con SOAPpy y los servicios web con Mono

Chema Cortes py en ch3m4.org
Vie Ene 13 15:08:17 CET 2006


Joan Carles Jimenez escribió:
> Hola de nuevo.
> 
> 	He activado el debug del SOAPpy para ver la salida, tal y como me habeis 
> dicho. Investigando un poco mas he visto que el problema es que el servicio 
> web ya no recibe bien los parámetros. 
> 
> 	El servicio web en mono es el siguiente:
> 
> [WebMethod(Description="Suma dos valores.")]
> public int Suma(int a, int b) {
> 	Console.WriteLine("Executing WS ...");
>         Console.WriteLine("a = " + a);
>         Console.WriteLine("b = " + b);
>         return a+b;
> }
> 
> 	Y la llamada desde Python la hago de la siguiente manera:
> 
> a = int(self.text_ctrl_1.GetValue())
> b = int(self.text_ctrl_2.GetValue())
>                 
> SOAPpy.Config.debug = 1
> SOAPpy.Config.BuildWithNoType = 1
> SOAPpy.Config.BuildWithNoNamespacePrefix = 1
>                 
> c = proxy.Suma(a, b)
>                 
> print (c)
> print (dir(c))
>                 
> self.text_ctrl_3.SetValue(c)
> 
> 	La salida que tengo por pantalla, por la parte de Mono, es:
> 
> Executing WS ...
> a = 0
> b = 0
> 
> 	Como veis, sean cuales sean los valores introducidos para "a" y "b", sólo 
> recibe el valor "0" y eso que segun la salida de SOAPpy, "a" y "b" tienen los 
> valores "1" y "2":
> 
> *** Outgoing SOAP ******************************************************
> <?xml version="1.0" encoding="UTF-8"?>
> <SOAP-ENV:Envelope 
> SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
> xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" 
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
> xmlns:xsd="http://www.w3.org/1999/XMLSchema">
> <SOAP-ENV:Body>
> <Suma SOAP-ENC:root="1">
> <v1 xsi:type="xsd:int">1</v1>
> <v2 xsi:type="xsd:int">2</v2>
> </Suma>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
> ************************************************************************
> *** Incoming SOAP ******************************************************
> <?xml version="1.0" encoding="utf-8"?><soap:Envelope 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><SumaResponse 
> xmlns="http://localhost/anaconda"><SumaResult>0</SumaResult></SumaResponse></soap:Body></soap:Envelope>
> ************************************************************************
> 
> 	¿Alguna manera de poder trabajar con SOAPpy y Mono?

Creo que .Net es algo particular con los servicios web. Prueba a cambiar:

c = proxy.Suma(a, b)

por

c = proxy.Suma(a=a, b=b)




Más información sobre la lista de distribución Python-es