Demo VCL + indy dell'applicazione server e client SOAP per Delphi XE?


151

Delphi includeva una cartella demo per i servizi Web, ma non sembra più includerlo.

Ho appena provato i progetti demo di Delphi 7 ( SOAPDMServerWAD, un server quasi senza UI SOAPDMClient) e non sono riuscito a farli funzionare, anche in Delphi 7.

Se qualcuno avesse mai fatto una demo simile in Delphi XE, o Delphi 2010, identico alle vecchie SOAPDMServerWAD+SoapDMClientdemo, funzionante in Delphi XE, e con almeno l'interfaccia utente minima che proviene dalla procedura guidata dell'applicazione Delphi SOAP Server, sarebbe perfetto.

Aggiornamento: la demo appare fino a Delphi 2010 ma utilizza l'ormai obsoleto WAD (web-app-debugger), ho provato a portarlo sul nuovo Indy runtime/web-app-development-harnessing-code, ma non riesco a farlo funzionare. La demo viene eseguita, ma il server non ha un'interfaccia utente e non sembra essere in esecuzione alcun server HTTP (testato utilizzando un normale browser Web, tramite gli http://localhost:port/URL. A proposito, prova a cercare su Google una demo e questo URL viene visualizzato e L'ho chiesto meno di un'ora fa. È spaventoso, Google.

Update2 Vedi la mia risposta qui sotto, un link arriverà presto con il codice funzionante.


3
[offtopic] Ho dovuto creare un client SOAP piuttosto semplice a Delfi un paio di mesi fa, si è rivelato un vero mal di testa e spreco di produttività, suggerisco nel frattempo di cercare un'alternativa.
ComputerSaysNo

13
@Dorin - Utilizzo dell'importatore WSDL è molto semplice creare un client SOAP.
Robert Love,

8
@Robert non è quella parte che dà mal di testa, è la documentazione e la mancanza di demo, ecc. Ho dovuto imparare troppo sul SOAP per un cliente semplicistico, che non mi ha servito troppo, da quello che ho capito Java è molto più semplice ma non l'ho provato => Sono un utente irriducibile di Delphi.
ComputerSaysNo

5
il sapone più semplice è .net wcf
nascosto il

5
C'è un video tutorial su edn.embarcadero.com/article/40973 . pertinente?
Alex,

Risposte:


39

Ho pubblicato il set completo di demo per SOAP su CodeCentral come articolo 28789 .

Questi contengono ogni singola demo SOAP dell'era Delphi 2007 dalla WebServicescartella, ora aggiornata per Delphi XE e XE2, inclusa la conversione dei vecchi server WAD in nuovi server VCL INDY. Penseresti che fosse impressionante, tranne che non lo è. È davvero facile Utilizzare semplicemente la procedura guidata per creare un nuovo progetto, quindi aggiungere l'interfaccia del servizio Web e le unità di implementazione e tutte le altre unità che appartengono alla vecchia demo al progetto. Una volta aggiunti al progetto, funzionano e basta. I server SOAP demo di base sono davvero facili da costruire in Delphi, una volta che hai una demo funzionante, scoprirai che è abbastanza facile modificarla ed estenderla.

La demo che risponde meglio alla domanda che ho posto sopra è nella SOAPDataModulesottocartella.

I problemi di base con la demo dell'era del 2007 sono due:

  1. Il WAD (debugger dell'app Web) è sparito. devi creare un nuovo server utilizzando il server Indy, per scopi demo ottimali, salvandoti dall'uso di WAD (che non c'è più) o dall'impostazione di un ambiente ISAPI, sotto IIS, che non è l'ideale per scopi dimostrativi. Il nuovo progetto demo che ho realizzato si chiama SoapDMServerINDY ed è costituito da un modulo dati (datamod_u.pas), un'unità VCL sotto forma di interfaccia utente ( IndyServerVCLFormUnit.pas) e un modulo web Indy Server, chiamato IndyServerWebModule.pas.

  2. La demo di Delphi 2007 si è interrotta grazie alla nuova pratica di avere una sottocartella Debug / Win32 in cui si trova ora l'eseguibile demo, è necessario salire ulteriormente. Ho riparato il server demo in modo che ti avvisasse con un messaggio di errore se i file di dati non potevano essere individuati, salvandoti dal misterioso "errore di analisi XML". Ho anche aggiunto alcuni errori durante il controllo in alcune demo in modo che ti dica che devi installare interbase per far funzionare questa demo, poiché alcune demo richiedono che Interbase sia installato e in esecuzione, e uno richiede un alias chiamato IBLOCAL per esistere, e preferibilmente una tabella chiamata EMPLOYEEad esistere.

inserisci qui la descrizione dell'immagine

Gli elementi di questa demo sono un server ( SoapDMServerINDY , basato sul codice di SOAPDMServerWAD) e il client SOAPDMClient che si collega alla demo e ha due pagine, una pagina mostrerà l'accesso ai dati di base tramite un DBGrid + remaset dataset e la seconda pagina mostra come invocare un metodo SOAP personalizzato.

Per utilizzare la demo: devi avviare il server, fare clic sul pulsante Start, quindi avviare il client e fare clic su Connetti.

inserisci qui la descrizione dell'immagine


1
Bravo per lo sforzo! Se non riesci a pubblicare la demo fissa, forse farebbe una diff / patch?
Chris Thornton,

8
È un vecchio principio della comunità open source; Gratta il tuo prurito e condividi i risultati, e speriamo che non solo vada a beneficio di tutti, ma crei una comunità, nel tempo, che possa fare insieme cose che non potremmo fare da sole. Quindi, PER FAVORE, inviami segnalazioni di bug in caso di problemi.
Warren P
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.