anonymous
Log in
Log out
Search
Recents:
v3.0
My subscriptions
My posts
My profile
xml-l
Webservices as a proc
13/11/19 10:07
r.calo6065
Replies:
0
Cómo están? me pasa lo siguiente, desde gx9 tenemos webservices que consumimos como proc con *.call*, antes de ser llamados tenemos getlocations para apuntar a distintos escenarios según nuestras necesidades y al ejecutar genexus hace el llamado soap sin problemas. En gx16 nos pasa que al hacer un *.call* a un webservices nos da un fault string porque la manera que genexus arma el request no es la correcta. *Cómo solucionamos esto? * - Con wsdl inspector generamos "proxys", es decir, importo mi propio webservices y lo ejecuto como tal, pero... *Qué complicaciones trae?* - Genera nuevos sdt, que si cambia la firma tenga que actualizar el wsdl, mantenimiento y demás. Me cuesta creer que esto haya dejado de funcionar en genexus también me suena que esto alguien ya lo tuvo que sufrir y encontró alguna propiedad o manera que me está faltando para poder consumir un webservices como .call *Algún dato* - La definición del proc es un main - protocol SOAP. - gx16u6 *Ejemplo* *Forma correcta de consumir el ws* Request: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="ns1"> <soapenv:Header/> <soapenv:Body> <ns1:pocWSLocation.Execute> <ns1:Character>a</ ns1 :Character> </ ns1:pocWSLocation.Execute> </soapenv:Body> </soapenv:Envelope> Response: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC=" http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <pocWSLocation.ExecuteResponse xmlns="ns1"> <Numeric>99</Numeric> </pocWSLocation.ExecuteResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> *Forma en que lo genera genexus* Request: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC=" http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <Execute xmlns=" ns1"> <Character xmlns="http://tempuri.org/">a</Character> </Execute> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Response: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC=" http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <pocWSLocation.ExecuteResponse xmlns=" ns1"> <SOAP-ENV:Fault> <faultcode>SOAP-ENV:Client</faultcode> <faultstring>Error reading Execute Message: <Character xmlns="http://tempuri.org/ ">a</Character></faultstring> <detail>1</detail> </SOAP-ENV:Fault> </pocWSLocation.ExecuteResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> ----------------------------------------- Para Suscribirse/Desuscribirse: http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,31 Por consultas owner-xml-l@gxtech.com.uy
Cómo están? me pasa lo siguiente, desde gx9 tenemos webservices que
consumimos como proc con *.call*, antes de ser llamados tenemos
getlocations para apuntar a distintos escenarios según nuestras necesidades
y al ejecutar genexus hace el llamado soap sin problemas.
En gx16 nos pasa que al hacer un *.call* a un webservices nos da un fault
string porque la manera que genexus arma el request no es la correcta.
*Cómo solucionamos esto? *
- Con wsdl inspector generamos "proxys", es decir, importo mi propio
webservices y lo ejecuto como tal, pero...
*Qué complicaciones trae?*
- Genera nuevos sdt, que si cambia la firma tenga que actualizar el
wsdl, mantenimiento y demás.
Me cuesta creer que esto haya dejado de funcionar en genexus también me
suena que esto alguien ya lo tuvo que sufrir y encontró alguna propiedad o
manera que me está faltando para poder consumir un webservices como .call
*Algún dato*
- La definición del proc es un main
- protocol SOAP.
- gx16u6
*Ejemplo*
*Forma correcta de consumir el ws*
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="ns1">
<soapenv:Header/>
<soapenv:Body>
<ns1:pocWSLocation.Execute>
<ns1:Character>a</ ns1 :Character>
</ ns1:pocWSLocation.Execute>
</soapenv:Body>
</soapenv:Envelope>
Response:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="
http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<pocWSLocation.ExecuteResponse xmlns="ns1">
<Numeric>99</Numeric>
</pocWSLocation.ExecuteResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
*Forma en que lo genera genexus*
Request:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="
http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<Execute xmlns=" ns1">
<Character xmlns="http://tempuri.org/">a</Character>
</Execute>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Response:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="
http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<pocWSLocation.ExecuteResponse xmlns=" ns1">
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>Error reading Execute
Message: <Character xmlns="http://tempuri.org/
">a</Character></faultstring>
<detail>1</detail>
</SOAP-ENV:Fault>
</pocWSLocation.ExecuteResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
-----------------------------------------
Para Suscribirse/Desuscribirse:
http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,31
Por consultas owner-xml-l@gxtech.com.uy
Replies
Back to xml-l