Сервер SOAP и клиентское приложение VCL + indy demo для Delphi XE? - PullRequest
151 голосов
/ 20 июня 2011

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

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

Если кто-нибудь когда-либо делал аналогичную демонстрационную работу в Delphi XE или Delphi 2010, идентичную старым демонстрационным версиям SOAPDMServerWAD+SoapDMClient, работающим в Delphi XE и по крайней мере с минимальным пользовательским интерфейсом, который получается из мастера приложений Delphi SOAP Server , это было бы идеально.

Обновление: Демонстрация появляется вплоть до Delphi 2010, но использует устаревший WAD (web-app-debugger), я попытался перенести его на новый Indy runtime/web-app-development-harnessing-code, но Я не могу заставить его работать. Демонстрация запускается, но сервер не имеет пользовательского интерфейса и, по-видимому, не запускает какой-либо HTTP-сервер (протестировано с помощью обычного веб-браузера по http://localhost:port/ URL-адресам. Кстати, попробуйте поискать в Google для демонстрации, и этот URL-адрес приходит и я спросил меньше часа назад. Это страшно, Google.

Обновление2 См. Мой собственный ответ ниже, скоро будет ссылка с рабочим кодом.

1 Ответ

39 голосов
/ 27 марта 2012

Я разместил полный набор демонстраций для SOAP на CodeCentral как элемент 28789 .

Они содержат все демоверсии 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, который называется * 1020. *.

  2. Демонстрация Delphi 2007 прервалась благодаря новой практике использования подпапки Debug / Win32, в которой сейчас находится демонстрационный исполняемый файл, вам нужно идти дальше. Я исправил демонстрационный сервер так, что он предупреждает вас сообщением об ошибке, если файлы данных не могут быть найдены, избавляя вас от загадочной «ошибки синтаксического анализа XML». Я также добавил некоторые проверки ошибок в некоторых демо-версиях, чтобы они сообщали вам, что вам нужно установить interbase, чтобы эта демоверсия работала, поскольку для некоторых демоверсий требуется, чтобы Interbase был установлен и запущен, а для одного требуется псевдоним IBLOCAL существует, предпочтительно таблица EMPLOYEE существует.

enter image description here

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

Чтобы использовать демонстрационную версию: необходимо запустить сервер, нажать кнопку «Пуск», затем запустить клиент и нажать «Подключиться».

enter image description here

...