【问题标题】:Detecting recursion in a WSDL检测 WSDL 中的递归
【发布时间】:2018-02-09 16:58:22
【问题描述】:

我正在尝试将 this WSDL 导入逻辑应用自定义连接器,但 Azure 抱怨:

“'将 WSDL 文档转换为 Open API 定义失败,出现错误'名为 'xxx://api.cvent.com/2006-11:EventParameters' 的元素具有递归定义。不支持递归类型。'.'。状态码:'BadRequest'。”

这是known issue with Logic Apps

看来我需要删除递归(如果可能)。问题是,我不知道如何在 WSDL 中找到递归。

双重问题:

1) 鉴于上面链接的 WSDL,递归在哪里?

2) 你怎么知道去哪里看?

谢谢!

【问题讨论】:

  • 您的网址似乎没有返回任何内容(客户端只是等待来自服务器的响应......)第二个给出了错误。
  • 第一个链接 this one 对我有用。我在多个连接上对其进行了测试。我不确定为什么它对你不起作用。第二个链接 ('api.cvent.com/2006-11:EventParameters') 非常有助于突出显示 Azure 随机放入错误消息中的非功能性 URL 链接字符串。这是无效的。我将编辑掉 http,它可能会消失。
  • 好的。我看到您的 WSDL 有 6267 行...您的提供商不是很好,因为没有向您提供有关正在发生的事情的更多详细信息。特别是因为快速查看不会在EventParameters 中显示递归...
  • 可能没有递归。毕竟,我只是按照 Azure 的说法。
  • 如果可以的话,我稍后再试试。您可以尝试编辑 EventParameters complexType 定义上的 WSDL,从一个非常简单的定义开始,测试其接受度,然后慢慢添加更多内容以了解它何时中断以查明特定部分。乏味但可能的路径。基本上是二分法/二分法搜索...

标签: xml xsd wsdl azure-logic-apps


【解决方案1】:

我什至不用导入 WSDL 来避免这个问题。大多数时候,这样做只会自动添加 2-3 个标题和信封。对于 SOAP 的所有复杂性,它并没有什么大不了的 :)

那么您仍然必须自己创建实际消息,并且包含信封非常简单。意思是,自定义连接器支持 SOAP 很好,但它并没有给您带来太多好处,特别是如果您只使用 1 或 2 个操作。

基本上,在努力让 WSDL 和自定义连接器相互满意之前,我会先尝试使用 HTTP 连接器:

Using SOAP Services with Logic Apps

【讨论】:

  • 好点。实际上,我已经使用一个简单的 HTTP 连接器连接了一个简短的 POC,并且设置起来并不困难。但在这种情况下,有 51 条路线,可重用性可能是个问题。不过,还是值得考虑的。
  • 我突然想到我可能没有理解你的建议。您是说在逻辑应用工作流中使用裸 HTTP 请求,没有任何自定义连接器都是,对吗?或者有没有办法用 SOAP 信封等构建自定义连接器?因为我确实喜欢能够将自定义连接器用作逻辑应用程序的一部分。
  • @crowhill 是的,我建议一个普通的 HTTP 请求将完全避免您的特定问题。 SOAP 只是一个模式,主要用于在http 上使用Xml,它本身并没有什么特别之处。大多数时候,不幸的是,SOAP 添加的唯一没有实际价值的东西 :( 是信封,它只是一些外部 Xml 元素。
猜你喜欢
  • 2021-09-12
  • 2012-03-26
  • 1970-01-01
  • 1970-01-01
  • 2012-02-20
  • 2015-06-10
  • 1970-01-01
  • 1970-01-01
  • 2014-05-03
相关资源
最近更新 更多