webservice example web-services delphi soap delphi-xe delphi-xe2

web services - example - SOAP servidor y aplicación cliente VCL+indy demo para Delphi XE?



delphi soap web service example (1)

He publicado el conjunto completo de demos para SOAP en CodeCentral como ítem 28789 .

Estos contienen cada una de las demostraciones SOAP de la era Delphi 2007 de la carpeta WebServices , ahora actualizada para Delphi XE y XE2, incluida la conversión de los antiguos servidores WAD en nuevos servidores INDY VCL. Uno pensaría que fue impresionante, excepto que no lo es. Es realmente fácil. Simplemente use el asistente para crear un nuevo proyecto y luego agregue la interfaz del servicio web y las unidades de implementación, y cualquier otra unidad que pertenezca a la demostración anterior, al proyecto. Una vez que se agregan al proyecto, simplemente funcionan. Los servidores SOAP de demostración básica son realmente fáciles de construir en Delphi, una vez que tienes una demostración funcional, encontrarás que es bastante fácil modificarla y ampliarla.

La demostración que mejor responde a la pregunta que hice arriba está en la SOAPDataModule .

Los problemas básicos con la demo de la era 2007 son dos:

  1. El WAD (depurador de aplicaciones web) se ha ido. debe crear un nuevo servidor utilizando el servidor Indy, para fines de demostración óptimos, evitando que use WAD (que ya no existe) o establezca el entorno ISAPI, bajo IIS, que no es ideal para propósitos de demostración. El nuevo proyecto de demostración que hice se llama SoapDMServerINDY , y consiste en un módulo de datos (datamod_u.pas), una unidad de interfaz de usuario de VCL ( IndyServerVCLFormUnit.pas ) y un módulo web de Indy Server, llamado IndyServerWebModule.pas .

  2. La demo de Delphi 2007 se rompió gracias a la nueva práctica de tener una subcarpeta Debug / Win32 en la que ahora se encuentra el ejecutable de demostración, necesita ir más allá. Arreglé el servidor de demostración para que te avise con un mensaje de error si no se pueden ubicar los archivos de datos, lo que te salva del misterioso "error de análisis XML". También agregué algunas comprobaciones de errores en algunas de las demos para que te diga que necesitas instalar interbase para que esta demostración funcione, ya que algunas de las demos requieren que Interbase esté instalado y en ejecución, y una requiere un alias llamado IBLOCAL para existir, y preferiblemente una tabla llamada EMPLOYEE para existir.

Los elementos de esta demostración son un servidor ( SoapDMServerINDY , basado en el código de SOAPDMServerWAD) y el cliente SOAPDMClient que se conecta a la demostración y tiene dos páginas, una página mostrará el acceso a datos básicos a través de un conjunto de datos DBGrid + y la segunda La página muestra cómo invocar un método SOAP personalizado.

Para usar la demostración: debe iniciar el servidor, hacer clic en el botón de inicio, luego iniciar el cliente y hacer clic en Conectar.

Delphi solía incluir una carpeta de demos para servicios web, pero ya no parece incluir esto.

Acabo de probar los proyectos de demostración Delphi 7 ( SOAPDMServerWAD , un servidor con casi ninguna interfaz de usuario, y SOAPDMClient ) y no pude hacer que funcionaran, incluso en Delphi 7.

Si alguien ha hecho alguna vez una demostración similar en Delphi XE o Delphi 2010, idéntica a las viejas SOAPDMServerWAD+SoapDMClient , trabajando en Delphi XE, y con al menos la interfaz de usuario mínima que proviene del asistente de la aplicación Delphi SOAP Server, eso sería ser perfecto.

Actualización: la demo aparece hasta Delphi 2010 pero usa el ahora obsoleto WAD (depurador de aplicaciones web), intenté conectarlo al nuevo indy runtime/web-app-development-harnessing-code , pero parece que no puede hacer que funcione. La demostración se ejecuta, pero el servidor no tiene interfaz de usuario, y no parece estar ejecutando ningún servidor HTTP (probado usando un navegador web común, a través de http://localhost:port/ urls. Por cierto, intente buscar en Google una demo , y aparece esta url, y lo pregunté hace menos de una hora. Eso es aterrador, google.

Actualización2 Consulte mi propia respuesta a continuación, pronto recibirá un enlace con el código de trabajo.