SOAP Server und Client Anwendung VCL + Indy Demo für Delphi XE?

151

Delphi enthielt früher einen Demo-Ordner für Webdienste, scheint diesen jedoch nicht mehr zu enthalten.

Ich habe gerade die Delphi 7-Demoprojekte ausprobiert ( SOAPDMServerWADein Server mit fast keiner Benutzeroberfläche und SOAPDMClient) und konnte sie selbst in Delphi 7 nicht zum Laufen bringen.

Wenn jemand jemals eine ähnliche Demo in Delphi XE oder Delphi 2010 zum Laufen gebracht hat, die mit den alten SOAPDMServerWAD+SoapDMClientDemos identisch ist , in Delphi XE funktioniert und mindestens die minimale Benutzeroberfläche des Delphi SOAP Server-Anwendungsassistenten aufweist, wäre dies perfekt.

Update: Die Demo wird bis zu Delphi 2010 angezeigt, verwendet jedoch den mittlerweile veralteten WAD (Web-App-Debugger). Ich habe versucht, ihn auf den neuen Indy zu portieren runtime/web-app-development-harnessing-code, aber ich kann ihn anscheinend nicht zum Laufen bringen. Die Demo wird ausgeführt, aber der Server hat keine Benutzeroberfläche und es scheint kein HTTP-Server zu laufen (getestet mit einem normalen Webbrowser über http://localhost:port/URLs. Versuchen Sie übrigens, nach einer Demo zu googeln, und diese URL wird angezeigt Ich habe vor weniger als einer Stunde gefragt. Das ist beängstigend, Google.

Update2 Siehe meine eigene Antwort unten, ein Link mit Arbeitscode kommt bald.

Warren P.
quelle
3
[offtopic] Ich musste vor ein paar Monaten in Delphi einen ziemlich einfachen SOAP-Client erstellen, der sich als Kopfschmerzen und Produktivitätsverschwendung herausstellte. Ich schlage vor, in der Zwischenzeit nach einer Alternative zu suchen.
ComputerSaysNo
13
@Dorin - Mit dem WSDL-Importer lässt sich sehr einfach ein SOAP-Client erstellen.
Robert Love
8
@ Robert Es ist nicht der Teil, der Kopfschmerzen verursacht, es ist die Dokumentation und das Fehlen von Demos usw. Ich musste viel zu viel über SOAP lernen für einen simplen Kunden, der mir nicht zu viel diente, von dem, was ich verstanden habe Java ist viel einfacher, hat es aber noch nicht ausprobiert => Ich bin ein eingefleischter Delphi-Benutzer.
ComputerSaysNo
5
einfachste Seife ist .net wcf
versteckt
5
Unter edn.embarcadero.com/article/40973 gibt es ein Tutorial-Video . relevant?
Alex

Antworten:

39

Ich habe den vollständigen Satz von Demos für SOAP auf CodeCentral als Artikel 28789 veröffentlicht .

Diese enthalten alle einzelnen SOAP-Demos der Delphi 2007-Ära aus dem WebServicesOrdner, die jetzt für Delphi XE und XE2 aktualisiert wurden, einschließlich der Konvertierung der alten WAD-Server in neue INDY VCL-Server. Sie würden denken, dass das beeindruckend war, außer es ist nicht. Es ist wirklich einfach. Verwenden Sie einfach den Assistenten, um ein neues Projekt zu erstellen, und fügen Sie dann die Webdienstschnittstelle und die Implementierungseinheiten sowie alle anderen Einheiten, die zur alten Demo gehören, zum Projekt hinzu. Sobald sie dem Projekt hinzugefügt wurden, funktionieren sie einfach. Grundlegende Demo-SOAP-Server sind in Delphi sehr einfach zu erstellen. Sobald Sie eine funktionierende Demo haben, werden Sie feststellen, dass es ziemlich einfach ist, sie zu ändern und zu erweitern.

Die Demo, die die oben gestellte Frage am besten beantwortet, befindet sich im SOAPDataModuleUnterordner.

Die grundlegenden Probleme mit der Demo aus der Ära 2007 sind zwei:

  1. Der WAD (Web App Debugger) ist weg. Sie müssen einen neuen Server mit dem Indy-Server erstellen, um optimale Demozwecke zu erzielen. So müssen Sie WAD (das nicht mehr vorhanden ist) verwenden oder eine ISAPI-Umgebung unter IIS einrichten, was für Demozwecke kaum ideal ist. Das neue Demo-Projekt, das ich erstellt habe, heißt SoapDMServerINDY und besteht aus einem Datenmodul (datamod_u.pas), einer VCL-Formular-Benutzeroberflächeneinheit ( IndyServerVCLFormUnit.pas) und einem Indy Server-Webmodul namens IndyServerWebModule.pas.

  2. Die Delphi 2007-Demo ist dank der neuen Praxis, einen Debug / Win32-Unterordner zu haben, in dem sich die ausführbare Demo-Datei befindet, kaputt gegangen. Sie müssen weiter nach oben gehen. Ich habe den Demo-Server so repariert, dass er Sie mit einer Fehlermeldung warnt, wenn die Datendateien nicht gefunden werden können, und Sie vor dem mysteriösen "XML-Parsing-Fehler" bewahrt. Ich habe auch einige Fehlerprüfungen in einigen Demos hinzugefügt, damit Sie erfahren, dass Sie Interbase installieren müssen, damit diese Demo funktioniert, da für einige Demos Interbase installiert und ausgeführt werden muss und für einen Alias ​​namens IBLOCAL vorhanden sein muss. und vorzugsweise eine Tabelle, die als EMPLOYEEexistierend bezeichnet wird.

Geben Sie hier die Bildbeschreibung ein

Die Elemente dieser Demo sind ein Server ( SoapDMServerINDY , basierend auf dem Code von SOAPDMServerWAD) und der Client SOAPDMClient, der eine Verbindung zur Demo herstellt und zwei Seiten hat. Eine Seite zeigt den grundlegenden Datenzugriff über ein DBGrid + -Datensatz-Remoting und die zweite Seite zeigt, wie eine benutzerdefinierte SOAP-Methode aufgerufen wird.

So verwenden Sie die Demo: Sie müssen den Server starten, auf die Schaltfläche Start klicken, dann den Client starten und auf Verbinden klicken.

Geben Sie hier die Bildbeschreibung ein

Warren P.
quelle
1
Bravo für die Mühe! Wenn Sie die feste Demo nicht veröffentlichen können, reicht möglicherweise ein Diff / Patch?
Chris Thornton
8
Es ist ein altes Prinzip der Open-Source-Community. Kratzen Sie an Ihrem eigenen Juckreiz und teilen Sie die Ergebnisse, und hoffentlich wird dies nicht nur allen zugute kommen, sondern im Laufe der Zeit eine Community aufbauen, die Dinge gemeinsam tun kann, die wir allein nicht tun könnten. Bitte senden Sie mir Fehlerberichte, wenn Sie Probleme finden.
Warren P