我有一个包含数十个XSD的WSDL,我需要从WSDL生成客户端代码以使用Web服务.Web服务的所有者使用Java并使用JAXB生成WSDL/XSD.JAXB为自定义绑定指定了"绑定文件",并且所有者已生成要与WSDL一起使用的XJB文件(JAXB自定义绑定文件).
我需要在C#中生成我的客户端代码,但svcutil和Visual Studio的添加服务引用没有任何关于此自定义绑定文件的规定.有一些工具可以生成Java客户端代码,这些代码将绑定文件作为参数,但没有用于生成C#的工具.我试着在没有指定XJB的情况下运行svcutil,但我无法让它工作.我做了大量的谷歌搜索,没有运气.关于如何使这项工作的任何想法?
您可以通过提供绑定声明来自定义 WSDL,但这些是特定于 Java 的,并且自定义仅在从 WSDL 生成 Java 代码时应用。绑定可以内联声明(嵌入在 XSD/WSDL 中)或在单独的文件中声明。您有一个单独的文件,因此我认为 WSDL 和 XSD 是“干净的”。
不过,JXB 文件是一个转移注意力的文件。WSDL 应该与技术无关,它不关心 Java、C# 或其他任何内容。您应该能够生成代码,因为 svcutil 将忽略 Java 绑定。
svcutil 向您抛出什么错误?我见过当 WSDL 缺少某个部分时,它会失败并显示难以理解的消息<type>。您提到了数十个 XSD 文件,它们是如何导入到 WSDL 中的以及导入是否有效?如果您在 Visual Studio 中打开 WSDL,它是否显示验证错误,是否在抱怨什么?
最后,如果一切都失败,您可以将所有内容(包括 JXB 文件)提供给wsimport等 Java 工具,并从中获取一些 Java 文件。您可以使用 Endpoint.publish进行快速部署,然后将 svcutil 指向部署的地址 plus ?wsdl,看看是否会得到不同的结果。
| 归档时间: |
|
| 查看次数: |
1885 次 |
| 最近记录: |