【问题标题】:Getting WSDL parse error while generating Apex code from WSDL in Salesforce在 Salesforce 中从 WSDL 生成 Apex 代码时出现 WSDL 解析错误
【发布时间】:2012-11-27 08:26:44
【问题描述】:

解析亚马逊产品广告 API 时出现以下错误。

错误:解析 wsdl 失败:simpleType->元素名称不能为空。第1295章

WSDL 链接:http://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl

有什么解决方法吗?

【问题讨论】:

  • 添加 WSDL 中引发错误的部分
  • C#工具wsdl.exe处理成功
  • @KoViMa 哦!我正在使用 Salesforce,可能是 Salesforce WSDL 解析器的问题?
  • @KoViMa:wsdl.exe 是旧版 ASMX 服务的旧版工具。不要将它用于新代码。请改用 svcutil.exe。

标签: wsdl salesforce apex-code


【解决方案1】:

我将 WSDL 拉下来,并在第 1292 行和第 1295 行进行了以下更改。注意两个内部 simpleTypes 上的新名称属性。

<xs:simpleType name="positiveIntegerOrAll">
<xs:union>
    <xs:simpleType name="positiveTestOne">
        <xs:restriction base="xs:positiveInteger"/>
    </xs:simpleType>
    <xs:simpleType name="positiveTestTwo">
        <xs:restriction base="xs:string">
        <xs:enumeration value="All"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:union>
</xs:simpleType>

在此之后,我能够使用此修改后的文件成功创建 Apex 类。我没有测试实际调用它,但是生成它时没有错误。

Salesforce 使用不支持许多 WSDL 功能的内部 wsdl2apex 工具。有一个Supported WSDL Features 的列表。除此之外,您通常可以破解源 WSDL 以获得合理水平的支持。

【讨论】:

  • 谢谢 Daniel :) Apex 代码生成时没有任何错误。
【解决方案2】:

那么,您尝试使用某些用户界面将该 Web 服务添加到 Salesforce,但它返回了该错误,对吗?

如果是,那么您可以尝试在本地保存该 wsdl - 修复必要的节点并尝试让 Salesforce 上传您的 wsdl 文件副本,或上传到 Internet 主机上的某个位置并将新地址提供给 Salesforce。

如果不是,那么我需要有关您如何尝试使用该 wsdl 的更多信息。

【讨论】:

  • 感谢您的回复!按照@Daniel Ballinger 的代码,得到了顶点类。
猜你喜欢
  • 1970-01-01
  • 2011-12-07
  • 1970-01-01
  • 1970-01-01
  • 2011-11-17
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多