1

我一直在修补ServiceStack以公开一些 Web 服务并且印象非常深刻。

这些服务的一个潜在消费者将是 Flex 应用程序。Flash Builder(Flex IDE)有一个工具,可以为基于 wsdl 的 SOAP Web 服务自动生成代理 AS3 类 - 目前仅适用于 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 工具的问题。我想知道是否有人成功地从 ServiceStack wsdl 自动生成 AS3 类?

4

1 回答 1

1

许多个月前,ServiceStack 框架的原始消费者之一是使用 Flash Builder 内置的 code-gen 的 Flash,我们仍然有一个特殊的选项来调整 WSDL 以解决 Flash Builders 处理 Guid 的问题,您可以使用:

  • /soap11?flash=true

如果您使用/soap12?flash=true WSDL,是否仍然存在同样的问题?

我们在该项目中采用的方法是使用 Flash Builders 代码生成来生成类型,但仅将它们用作 DTO,我们将其与通用 XmlServiceClient 一起重新使用,从而允许我们使用更快的 XML 端点而不是 SOAP 端点。(如果我能找到它,我会在某处开源该课程)。

尽管我现在采用的方法只是使用动态模型和 JSON 端点,因为JSON 序列化器甚至比 XML 端点更快、更精简。

由于没有安装 Flash Builder,我无法对此进行测试,但如果您可以在本地保存 WSDL 并调整输出以便 Flash Builder 喜欢它,我可以考虑将更改合并到flash=true WSDL 标志下。

于 2011-11-02T18:35:16.773 回答