Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Используем WSDL для Delphi: Устранение ошибки E2089 при работе с Reuters через Delphi 2010

Delphi , Программа и Интерфейс , Процессы и Сервисы

Ваша проблема связана с некорректным использованием функции TypeInfo в Delphi 2010, когда она используется для работы с WSDL. Согласно предоставленной информации, вы сталкиваетесь с ошибкой E2089, которая указывает на неверное преобразование типов. Это происходит, когда пытаетесь зарегистрировать интерфейс, полученный из WSDL, с помощью компонента TMSXML3DOMTPH.DomWebServiceSoapInvoker.

Шаги к решению проблемы:

  1. Проверка WSDL и Delphi: Убедитесь, что WSDL корректно отображается в Delphi. Это может потребовать обновления Delphi-генератора для WSDL или устранения известных несоответствий в WSDL.

  2. Корректировка использования TypeInfo:

    • В предоставленном коде используется TypeInfo как тип, что неверно, так как он представляет собой функцию из модуля System.
    • Исправьте все обращения к TypeInfo на использование функции System.TypeInfo.
  3. Проверка инициализации:

    • Убедитесь, что блок initialization в вашей программе не вызывает функций, которые обращаются к неинициализированным объектам или переменным.
  4. Проверка регистрации интерфейсов:

    • Убедитесь, что интерфейсы корректно зарегистрированы в InvRegistry и что все необходимые классы заголовков также корректно зарегистрированы.

Пример исправленной инициализации:

initialization
    InvRegistry.RegisterInterface(System.TypeInfo(ExtractionService), 'http://reuters.com/datascopeselect/ExtractionService/v1/', 'UTF-8');
    InvRegistry.RegisterAllSOAPActions(System.TypeInfo(ExtractionService), '|http://reuters.com/datascopeselect/ExtractionService/v1/GetVersion'
    +'|http://reuters.com/datascopeselect/ExtractionService/v1/GetInstrumentSearchTypes'
    +'|...' // Добавьте остальные операции
    );
    InvRegistry.RegisterInvokeOptions(System.TypeInfo(ExtractionService), ioDocument);
    InvRegistry.RegisterInvokeOptions(System.TypeInfo(ExtractionService), ioSOAP12);
    InvRegistry.RegisterHeaderClass(System.TypeInfo(ExtractionService), EjvServerHeader2, 'EjvServerHeader', 'http://reuters.com/datascopeselect/ExtractionService/v1/');
    InvRegistry.RegisterHeaderClass(System.TypeInfo(ExtractionService), OperationInfoHeader2, 'OperationInfoHeader', 'http://reuters.com/datascopeselect/ExtractionService/v1/');
    InvRegistry.RegisterHeaderClass(System.TypeInfo(ExtractionService), CredentialsHeader2, 'CredentialsHeader', 'http://reuters.com/datascopeselect/ExtractionService/v1/');
  1. Тестирование:

    • Запустите вашу программу и убедитесь, что она корректно обращается к WSDL-сервису.
  2. Документация и логги:

    • Включите в ваш проект подробную документацию и логги, чтобы отслеживать ошибки.

Заключение:

Ваша проблема, вероятно, связана с неправильным использованием TypeInfo. Убедитесь, что вы обращаетесь к System.TypeInfo как к функции, а не к типу. Это должно устранить ошибку E2089. Если проблема сохраняется, рассмотрите возможность обращения в техническую поддержку Delphi или на форумах, где можно найти дополнительную помощь по вашей конкретной версии Delphi и компонентам, используемым для работы с WSDL.

Создано по материалам из источника по ссылке.

Вопрос связан с устранением ошибки E2089 в Delphi 2010 при работе с функцией `TypeInfo` и компонентом `TMSXML3DOMTPH.DomWebServiceSoapInvoker` в контексте использования WSDL.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Процессы и Сервисы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 17:04:51/0.0032730102539062/0