Использование сервиса SOAP 1.1, созданного ServiceStack в Flash Builder

#apache-flex #soap #flash-builder #servicestack

#apache-гибкий #мыло #flash-builder #сервисный пакет

Вопрос:

Я повозился с ServiceStack, чтобы предоставить доступ к некоторым веб-сервисам, и был очень впечатлен.

Одним из потенциальных потребителей этих услуг будет приложение Flex. Flash Builder (среда разработки Flex IDE) имеет инструмент, который автоматически генерирует классы прокси AS3 для веб-служб SOAP на основе wsdl — на данный момент только для SOAP 1.1.

Если я воссоздам учебник по HelloWorld и попытаюсь использовать SOAP 1.1 wsdl для автоматического создания классов, я получу следующие ошибки во Flash Builder.

 There was an error during service introspection.
  The part 'parameters' has an invalid value 'HelloResponse' defined for its element. Element declarations must refer to valid values defined in a schema.
  The part 'parameters' has an invalid value 'Hello' defined for its element. Element declarations must refer to valid values defined in a schema.
 

Я уверен, что это проблема с инструментом Flash Builder. Мне интересно, добился ли кто-нибудь успеха в автоматической генерации классов AS3 из ServiceStack wsdl?

Ответ №1:

Много месяцев назад одним из первых пользователей платформы ServiceStack был Flash, использующий встроенный во Flash Builder code-gen, у нас все еще есть специальная опция для настройки WSDL, чтобы обойти проблемы с обработкой GUID-идентификаторов Flash Builders, к которым вы можете получить доступ с помощью:

  • /soap11?flash=true

Остается ли та же проблема, если вы используете /soap12?flash=true WSDL?

Подход, который мы использовали в проекте, заключался в использовании Flash Builders code-gen для генерации типов, но вместо этого использовали их только как DTO, которые мы повторно использовали с общим XmlServiceClient, позволяющим нам использовать более быстрые конечные точки XML вместо SOAP. (Я открою исходный код класса где-нибудь, если смогу его найти).

Хотя подход, который я бы выбрал сейчас, заключался бы в использовании динамических моделей и конечных точек JSON, поскольку сериализатор JSON намного быстрее и компактнее, чем даже конечные точки XML.

Я не могу проверить это, поскольку у меня не установлен Flash Builder, но если вы можете сохранить WSDL локально и изменить вывод, чтобы он понравился Flash Builder, я могу рассмотреть возможность включения изменений под флагом flash = true WSDL.

Комментарии:

1. Спасибо за отличный ответ. Сейчас у меня не так много информации о сервисе (отсюда и использование HelloWorld), но как только я это сделаю и разберусь с wsdl, я обязательно опубликую его здесь.