web-dev-qa-db-fra.com

SOAP serveur et application client VCL + démo indy pour Delphi XE?

Delphi avait l'habitude d'inclure un dossier de démonstration pour les services Web, mais ne semble plus l'inclure.

Je viens d'essayer les projets de démonstration de Delphi 7 (SOAPDMServerWAD, un serveur avec presque aucune interface utilisateur et SOAPDMClient) et je n'ai pas réussi à les faire fonctionner, même dans Delphi 7.

Si quelqu'un a déjà fait un travail de démonstration similaire dans Delphi XE ou Delphi 2010, identique à l'ancien SOAPDMServerWAD+SoapDMClient démos, fonctionnant dans Delphi XE, et avec au moins l'interface utilisateur minimale qui vient de Delphi SOAP Assistant d'application serveur, ce serait parfait.

pdate: La démo apparaît jusqu'à Delphi 2010 mais utilise le WAD (web-app-debugger) désormais obsolète, j'ai essayé de le porter sur le nouveau Indy runtime/web-app-development-harnessing-code, mais je n'arrive pas à le faire fonctionner. La démo s'exécute, mais le serveur n'a pas d'interface utilisateur et ne semble pas exécuter de serveur HTTP (testé à l'aide d'un navigateur Web standard, via http://localhost:port/ urls. Au fait, essayez de googler pour une démonstration, et cette URL apparaît, et j'ai demandé il y a moins d'une heure. C'est effrayant, google.

pdate2 Voir ma propre réponse ci-dessous, un lien arrive bientôt avec le code de travail.

151
Warren P

J'ai posté le jeu complet de démos pour SOAP sur CodeCentral comme article 28789 .

Ceux-ci contiennent chacune des démos SOAP de l'ère Delphi 2007 du dossier WebServices, maintenant mises à jour pour Delphi XE et XE2, y compris la conversion des anciens serveurs WAD en nouveaux serveurs INDY VCL. On pourrait penser que c'était impressionnant, sauf que ce n'est pas le cas. C'est vraiment simple. Utilisez simplement l'assistant pour créer un nouveau projet, puis ajoutez l'interface de service Web et les unités d'implémentation, ainsi que toutes les autres unités appartenant à l'ancienne démo, au projet. Une fois ajoutés au projet, ils fonctionnent. Démo de base SOAP Les serveurs sont vraiment faciles à construire dans Delphi, une fois que vous avez une démo fonctionnelle, vous constaterez qu'il est assez facile de la modifier et de l'étendre.

La démo qui répond le mieux à la question que j'ai posée ci-dessus se trouve dans le sous-dossier SOAPDataModule.

Les problèmes de base avec la démo de l'ère 2007 sont deux:

  1. Le WAD (débogueur d'application web) a disparu. vous devez créer un nouveau serveur en utilisant le serveur Indy, à des fins de démonstration optimales, en vous évitant d'utiliser WAD (qui a disparu) ou de configurer l'environnement ISAPI, sous IIS, ce qui n'est guère idéal pour des fins de démonstration. Le nouveau projet de démonstration que j'ai fait s'appelle SoapDMServerINDY , et il se compose d'un module de données (datamod_u.pas), d'une unité d'interface utilisateur sous forme VCL (IndyServerVCLFormUnit.pas) Et un module Web Indy Server, appelé IndyServerWebModule.pas.

  2. La démonstration de Delphi 2007 s'est interrompue grâce à la nouvelle pratique consistant à avoir un sous-dossier Debug/Win32 dans lequel l'exécutable de démonstration se trouve maintenant, vous devez aller plus loin. J'ai corrigé le serveur de démonstration afin qu'il vous avertisse par un message d'erreur si les fichiers de données ne peuvent pas être localisés, vous évitant ainsi la mystérieuse "erreur d'analyse XML". J'ai également ajouté quelques erreurs de vérification dans quelques-unes des démos afin qu'il vous indique que vous devez installer l'interbase pour que cette démo fonctionne, car certains de les démos requièrent qu'Interbase soit installé et en cours d'exécution, et l'une nécessite un alias appelé IBLOCAL pour exister, et de préférence une table appelée EMPLOYEE pour exister.

enter image description here

Les éléments de cette démo sont un serveur ( SoapDMServerINDY , basé sur le code de SOAPDMServerWAD), et le client SOAPDMClient qui se connecte à la démo et dispose de deux pages, une page affichera l'accès aux données de base via un accès distant DBGrid +, et la deuxième page montre comment invoquer une méthode SOAP personnalisée.

Pour utiliser la démo: Vous devez démarrer le serveur, cliquez sur le bouton Démarrer, puis démarrez le client et cliquez sur Connecter.

enter image description here

39
Warren P