Serwer SOAP i aplikacja kliencka VCL + indywidualne demo dla Delphi XE?

151

Delphi zawierał folder demonstracyjny dla usług internetowych, ale wydaje się, że już go nie zawiera.

Właśnie wypróbowałem projekty demonstracyjne Delphi 7 ( SOAPDMServerWADserwer prawie bez interfejsu użytkownika i SOAPDMClient) i nie byłem w stanie zmusić ich do działania, nawet w Delphi 7.

Jeśli ktokolwiek kiedykolwiek stworzył podobną wersję demonstracyjną w Delphi XE lub Delphi 2010, identyczną ze starymi SOAPDMServerWAD+SoapDMClientwersjami demonstracyjnymi, pracującą w Delphi XE i przynajmniej z minimalnym interfejsem użytkownika pochodzącym z kreatora aplikacji Delphi SOAP Server, to byłoby idealne.

Aktualizacja: Wersja demonstracyjna pojawia się aż do Delphi 2010, ale używa przestarzałego WAD (debugera aplikacji internetowych). Próbowałem przenieść go do nowego Indy runtime/web-app-development-harnessing-code, ale nie mogę go uruchomić. Wersja demonstracyjna działa, ale serwer nie ma interfejsu użytkownika i wygląda na to, że nie działa żaden serwer HTTP (testowano przy użyciu zwykłej przeglądarki internetowej za pośrednictwem http://localhost:port/adresów URL. Swoją drogą, spróbuj wyszukać w Google wersję demonstracyjną. Pojawi się ten adres URL i Zapytałem mniej niż godzinę temu. To przerażające, Google.

Aktualizacja2 Zobacz moją własną odpowiedź poniżej, wkrótce pojawi się link z działającym kodem.

Warren P
źródło
3
[offtopic] Kilka miesięcy temu musiałem stworzyć całkiem prostego klienta SOAP w Delphi, co okazało się sporym bólem głowy i stratą produktywności. W międzyczasie proponuję poszukać alternatywy.
ComputerSaysNo
13
@Dorin - Używanie Importera WSDL jest bardzo łatwe do stworzenia klienta SOAP.
Robert Love
8
@Robert to nie ta część, która przyprawia o ból głowy, to dokumentacja i brak demonstracji itp. Musiałem się nauczyć zbyt wiele o SOAP dla uproszczonego klienta, co nie służyło mi zbyt wiele, z tego, co zrozumiałem w Java jest o wiele łatwiejsza, ale jej nie próbowałem => Jestem zagorzałym użytkownikiem Delphi.
ComputerSaysNo
5
najłatwiejszym mydłem jest .net wcf
ukryty
5
Film instruktażowy dostępny jest pod adresem edn.embarcadero.com/article/40973 . istotnych?
Alex

Odpowiedzi:

39

Opublikowałem komplet wersji demonstracyjnych dla SOAP w CodeCentral jako element 28789 .

Zawierają one wszystkie dema SOAP ery Delphi 2007 z WebServicesfolderu, teraz zaktualizowane dla Delphi XE i XE2, w tym konwersję starych serwerów WAD na nowe serwery INDY VCL. Można by pomyśleć, że to imponujące, ale tak nie jest. To naprawdę łatwe. Po prostu użyj kreatora, aby utworzyć nowy projekt, a następnie dodaj do projektu interfejs usługi sieciowej i jednostki implementacji oraz wszelkie inne jednostki należące do starej wersji demonstracyjnej. Po dodaniu do projektu po prostu działają. Podstawowe demo Serwery SOAP są naprawdę łatwe do zbudowania w Delphi. Kiedy już będziesz mieć działające demo, przekonasz się, że łatwo jest je modyfikować i rozszerzać.

Demo, które najlepiej odpowiada na pytanie, które zadałem powyżej, znajduje się w SOAPDataModulepodfolderze.

Podstawowe problemy związane z wersją demo z ery 2007 to dwa:

  1. WAD (debugger aplikacji internetowych) zniknął. musisz stworzyć nowy serwer przy użyciu serwera Indy, dla optymalnych celów demonstracyjnych, oszczędzając ci korzystania z WAD (którego już nie ma) lub konfigurowania środowiska ISAPI w IIS, które nie jest idealne do celów demonstracyjnych. Nowy projekt demonstracyjny, który stworzyłem, nazywa się SoapDMServerINDY i składa się z modułu danych (datamod_u.pas), jednostki interfejsu użytkownika formularza VCL ( IndyServerVCLFormUnit.pas) oraz modułu internetowego Indy Server o nazwie IndyServerWebModule.pas.

  2. Demo Delphi 2007 zepsuło się dzięki nowej praktyce posiadania podfolderu Debug / Win32, w którym znajduje się plik wykonywalny demo, musisz przejść dalej. Naprawiłem serwer demonstracyjny, aby ostrzegał Cię komunikatem o błędzie, jeśli nie można zlokalizować plików danych, oszczędzając Ci tajemniczego „błędu przetwarzania XML”. Dodałem również sprawdzanie błędów w kilku wersjach demonstracyjnych, aby poinformować Cię, że musisz zainstalować interbase, aby to demo działało, ponieważ niektóre dema wymagają zainstalowania i działania Interbase, a jeden wymaga aliasu o nazwie IBLOCAL, aby istnieć, a najlepiej tabeli powołanej EMPLOYEEdo istnienia.

wprowadź opis obrazu tutaj

Elementami tego demo są serwer ( SoapDMServerINDY , oparty na kodzie z SOAPDMServerWAD) oraz klient SOAPDMClient, który łączy się z wersją demonstracyjną i ma dwie strony, jedna strona pokaże podstawowy dostęp do danych poprzez zdalny dostęp do danych DBGrid +, a druga strona pokazuje, jak wywołać niestandardową metodę SOAP.

Aby skorzystać z wersji demonstracyjnej: Musisz uruchomić serwer, kliknąć przycisk Start, następnie uruchomić klienta i kliknąć Połącz.

wprowadź opis obrazu tutaj

Warren P
źródło
1
Brawo za wysiłek! Jeśli nie możesz opublikować poprawionego demo, może wystarczyłaby różnica / łatka?
Chris Thornton
8
To stara zasada społeczności open source; Podaruj sobie swędzenie i podziel się wynikami, i miejmy nadzieję, że przyniesie to korzyści nie tylko wszystkim, ale z czasem zbuduje społeczność, która może wspólnie robić rzeczy, których sami nie moglibyśmy zrobić. Więc PROSZĘ o przesyłanie mi raportów o błędach, jeśli znajdziesz problemy.
Warren P