SOAP-сервер и клиентское приложение VCL + indy demo для Delphi XE?

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

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

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

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

Update2 См. мой собственный ответ ниже, скоро появится ссылка с рабочим кодом.

Ответ 1

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

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

Демонстрация, которая наилучшим образом отвечает на вопрос, который я задал выше, находится в подпапке SOAPDataModule.

Основные проблемы с демо с эпохи 2007 года - это два:

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

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

enter image description here

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

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

enter image description here