SOAP-сервер і клієнтська програма VCL + indy demo для Delphi XE?


151

Delphi використовував для додавання демо-папки для веб-служб, але, здається, це не включає.

Я просто спробував демонстраційні проекти Delphi 7 ( SOAPDMServerWAD, сервер з майже відсутнім інтерфейсом і зовсім SOAPDMClient), і не зміг змусити їх працювати навіть у Delphi 7.

Якщо хто-небудь коли-небудь робив подібну демонстраційну роботу в Delphi XE або Delphi 2010, ідентичну старій SOAPDMServerWAD+SoapDMClientдемонстрації, що працює в Delphi XE, і принаймні мінімальний інтерфейс користувача, що надходить від майстра додатків Delphi SOAP Server, це було б ідеально.

Оновлення: демонстрація з'являється аж до Delphi 2010, але використовує вже застарілий WAD (веб-додаток-відладчик), я спробував перенести його до нової Інді runtime/web-app-development-harnessing-code, але, здається, не можу працювати. Демонстрація працює, але сервер не має користувальницького інтерфейсу і, здається, не працює жодним сервером HTTP (тестується за допомогою звичайного веб-браузера, через http://localhost:port/URL-адреси. До речі, спробуйте googling для демонстрації, і ця URL-адреса з’являється, і Я запитав менше години тому. Це страшно, Google.

Update2 Дивіться мою власну відповідь нижче, незабаром посилається робочий код.


3
[offtopic] Мені довелося створити досить простий клієнт SOAP у Delphi пару місяців тому, який виявився досить головним болем і втратою продуктивності, я пропоную тим часом шукати альтернативу.
ComputerSaysNo

13
@Dorin - Використовувати імпортер WSDL дуже просто створити клієнт SOAP.
Роберт Лав

8
@Robert - це не та частина, яка болить головою, це документація та відсутність демонстрацій тощо. Мені довелося навчитися занадто багато про SOAP для спрощеного клієнта, який не надто служив мені, з того, що я зрозумів у Ява набагато простіше, але не пробував цього => Я дуже важкий користувач delphi.
ComputerSaysNo

5
найпростішим милом є .net wcf
приховано

5
Відео з підручником є ​​на сайті edn.embarcadero.com/article/40973 . відповідні?
Алекс

Відповіді:


39

Я опублікував повний набір демонстрацій для SOAP на CodeCentral як пункт 28789 .

Вони містять усі окремі демонстрації SOAP SOAP епохи Delphi 2007 WebServices, тепер оновлені для Delphi XE та XE2, включаючи перетворення старих WAD-серверів у нові сервери INDY VCL. Ви могли б подумати, що це вражало, хіба що це не так. Це дійсно просто. Просто скористайтеся майстром, щоб створити новий проект, а потім додайте до проекту інтерфейс веб-сервісу та блоки реалізації та будь-які інші блоки, що належать до старого демо-версії. Як тільки вони додаються до проекту, вони просто працюють. Основні демонстраційні сервери SOAP в Delphi дуже просто побудувати, коли у вас є робоча демонстраційна версія, ви зможете змінити та розширити її досить просто.

Демонстраційна версія, яка найкраще відповідає на запитання, яке я задав вище, знаходиться в SOAPDataModuleпідпапці.

Основні проблеми з демонстрацією епохи 2007 року:

  1. WAD (відладчик веб-додатків) відсутній. вам потрібно створити новий сервер за допомогою сервера Indy для оптимальних демонстраційних цілей, врятувавши вас від використання WAD (якого немає) або налаштування середовища ISAPI під IIS, що навряд чи ідеально підходить для демонстраційних цілей. Новий демонстраційний проект, який я зробив, називається SoapDMServerINDY , і він складається з модуля даних (datamod_u.pas), блоку користувача VCL форми інтерфейсу користувача ( IndyServerVCLFormUnit.pas) та веб-модуля Indy Server IndyServerWebModule.pas.

  2. Демо демонстрація Delphi 2007 виникла завдяки новій практиці створення підпапки Debug / Win32, в якій зараз виконується демонстраційний файл, вам потрібно піти далі. Я виправив демонстраційний сервер, щоб він попереджав вас про повідомлення про помилку, якщо файли даних не знаходяться, врятуючи вас від таємничої "помилки розбору XML". Я також додав кілька перевірок помилок у кількох демо-версіях, щоб він сказав вам, що вам потрібно встановити міжбазовий інтерфейс, щоб ця демонстрація працювала, оскільки для деяких демо-версій потрібна встановлення та запуск Interbase, а для існування псевдоніма, який називається IBLOCAL, і, переважно, таблицю, закликану EMPLOYEEіснувати.

введіть тут опис зображення

Елементами цієї демонстрації є сервер ( SoapDMServerINDY , заснований на коді SOAPDMServerWAD), і клієнт SOAPDMClient, який підключається до демонстрації та має дві сторінки, одна сторінка покаже базовий доступ до даних через видалення даних DBGrid +, а друга на сторінці показано, як викликати користувацький метод SOAP.

Щоб використовувати демонстраційну версію: Вам потрібно запустити сервер, натиснути кнопку запуску, потім запустити клієнта та натиснути Підключити.

введіть тут опис зображення


1
Браво за зусилля! Якщо ви не можете опублікувати фіксовану демонстраційну версію, може бути, що diff / patch зробить це?
Кріс Торнтон

8
Це старий принцип спільноти з відкритим кодом; Подряпайте власний свербіж та діліться результатами, і, сподіваємось, це не тільки принесе користь усім, але і створить спільноту з часом, яка може робити разом речі, які ми не змогли зробити один. Тож, будь ласка, надішліть мені повідомлення про помилки, якщо у вас виникнуть проблеми.
Warren P
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.