gpt4 book ai didi

c# - 使用 C# 中的 VS2008 解决方案使用 Axis 生成的 Web 服务

转载 作者:行者123 更新时间:2023-11-30 16:35:50 25 4
gpt4 key购买 nike

我正在尝试将对外部 Axis 生成的 Web 服务的 Web 引用添加到 Visual Studio 2008 解决方案中。我收到的 url 指向我可以通过浏览器成功访问的 WSDL,并且我看到了所有 WService 详细信息。使用的 Axis 版本是 1.4。

但是如果我运行 wsdl.exe 或当我在 VS2008 中添加引用时,我可以在左侧看到方法列表,但我收到一条错误消息:


文件在 url http://............?wsdl未被识别为已知文档类型。

每个已知类型的错误消息可能会帮助您解决问题:

  • 来自“DISCO 文档”的报告是“在 URL http://.........?wsdl 处发现的文档”找不到。
    • 无法识别文档格式。
  • 来自“WSDL 文档”的报告是“XML 文档 (510, 62) 中存在错误”。
    • 未定义 namespace 前缀“impl:urn”。
  • 来自“XML 模式”的报告是“W3C XML 模式的根元素应该是,它的命名空间应该是”http://www.w3.org/2001/XMLSchema '.'。”

我无法继续。我在 SO 上看到了其他帖子,但所有帖子都指的是已经添加了网络引用的情况。

非常感谢!

一个。

编辑:谢谢大家,实际上我设法“手动”解决了这个问题,正如 dovholuk 所建议的那样:我捕获了 wsdl,将其本地保存在文件系统中,然后我手动修改它,直到 wsdl.exe 能够生成类。然后我在项目中添加了这个类,并成功地调用了网络服务。

再见安德里亚

最佳答案

这是我在使用 axis 1.4 时遇到的一个常见问题。我个人总是手动编写我的 wsdl 和 xsd 代码,而不是出于这个原因和其他原因使用发射功能......

如果你打开你的 ?wsdl 并开始解析,我敢打赌你有一些枚举在那里是“空的”。像这样的东西:

<xs:simpleType name="MyType">
</xs:simpleType>

我真的只是在这里猜测,因为你没有发布 wsdl(不确定你是否可以?)但是当我写我的 wsdl/xsd 并且对简单类型有限制时我得到了这个确切的行为......例如:

<xs:simpleType name="IpAddress">
<xs:restriction base="xs:string">
<xs:pattern value="\d*"> (note this is not 'correct' i'm just 'for instancing')
</xs:restriction>
</xs:simpleType>

(如果 xsd 无效,请不要杀了我 - 我只是凭内存...:) )

Axis 会吸收它,创建对象但是当它使用 ?wsdl 发出时它会出现“无效”....

所以我的建议是梳理那个 wsdl - 特别是“不完整”模式定义的类型部分......将它们从你的 java 中取出并“重试”直到它在 c# 中工作......

不知道这是否有帮助 - 但如果您需要任何其他想法,请发回...

关于c# - 使用 C# 中的 VS2008 解决方案使用 Axis 生成的 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1478129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com