Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   HTTPRIO y el Registry ¿unica opción? (https://www.clubdelphi.com/foros/showthread.php?t=49502)

kaopectate 23-10-2007 17:18:23

HTTPRIO y el Registry ¿unica opción?
 
Hola a todos.

Tengo una aplicación de Web Services (SOAP) que hace uso (en el cliente) de un componente HTTPRIO.

Como parte de la implementación SOAP de Delphi, tengo un archivo dende se define la interfase (funciones y tipos que estan disponibles en el server y que pudieran ser consultados en el cliente). Pues bien, esta interfase, se registra automáticamente en el registry de Windows al hacer uso de ella.

Mi problema es que me toca instalar el cliente en una compañía que tiene bloqueado el acceso al registry para el usuario que me han asignado.

Pregunta: ¿Existe alguna otra alternativa para implementar un cliente SOAP en Delphi? o mejor aún, ¿Existe alguna manera de hacer que la implementación SOAP de Delphi me permita no hacer uso del registry?

Gracias de antemano.

courtois 03-11-2007 05:32:06

Es necesario registrar la clase antes de usarse, pero el problema no es tu aplicacion sino la restriccion en la maquina, como regla general, las instalaciones se hacen como administrador no como usuario restringido.

kaopectate 05-11-2007 15:57:29

Gracias por contestar, courtois.

En efecto es como dices, mi pregunta en realidad era si habia alguna implementación alternativa.

Sin embargo, pudimos detectar que el problema no estaba en el acceso al registry sino en los permisos del Data Execution Prevention (DEP) del Windows.

Es decir, el proceso de registro funcionaba bien pero el S.O. bloqueaba el acceso al Web Service produciendo un error interno en mi aplicación cliente.

Dejo este link por si a alguien le ocurre algo similar:

http://support.microsoft.com/kb/875352

Gracias de nuevo.

LauraAS 08-11-2007 16:27:11

Yo he implementado algún que otro cliente de WebServices utilizando el componente HTTPReqResp de la paleta WebServices.


var
HTTPReqResp: THTTPReqResp;
Stream: TMemoryStream;
XMLEnvio: WideString;
begin
Stream := TMemoryStream.Create;
Stream.Clear;
HTTPReqResp := THTTPReqResp.Create(nil);
HTTPReqResp.InvokeOptions := [];
HTTPReqResp.Agent := 'Borland SOAP 1.2';
HTTPReqResp.URL := urlWebServices

//envias xmlEnvio y recibes un Stream:TMemoryStream
HTTPReqResp.Execute(xmlEnvio,Stream)
//Aquí tratas el stream
//****************************

HTTPReqResp.Free;
end;

kaopectate 08-11-2007 16:38:51

Gracias LauraAS

Lo voy a probar, es una buena alternativa.

Saludos.

william z 08-11-2007 17:21:35

webservices envio xml
 
Saludos al Foro. Hola LauraAS, he leido tu post, tu implementacion con el componente HTTPReqResp es directo lo que necesito, pero tengo algunas dudas : la variable xmlenvio contiene un xml especificacion. por ejemplo: 96581 gast Recherche127 y all ejecutar el metodo execute devuelve en Stream algun valor, por ejemplo: PCBISKNO@test1@5D09393B3E3E40414243444B464C484F4A4F4F5C4E555360556354655668586C5B605D5E5F5E616F6369 1.7.3.3.3.0 es correcto como lo veo, mi pregunta como hago el tratamiento del Stream. necesito algo parecido a http://www.soapui.org/ gracias un saludo desde Germany William


La franja horaria es GMT +2. Ahora son las 16:31:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi