Duda con SOAPpy y los servicios web con Mono
Joan Carles Jimenez
jjcarles en terra.es
Vie Ene 13 13:39:51 CET 2006
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? Gracias de nuevo por la
ayuda.
--
Joan Carles Jiménez
jjcarles en terra.es
Más información sobre la lista de distribución Python-es