【问题标题】:Process WSDL to include only specific functions处理 WSDL 以仅包含特定功能
【发布时间】:2013-08-25 08:19:14
【问题描述】:

我有一个由我正在使用的服务提供的 WSDL 文件。它包含大量功能,我只对其中一个感兴趣。

如何“重构” WSDL 文件并生成一个仅包含我感兴趣的函数的新文件?

我正在使用 JDK 的 wsimport 来处理 WSDL 文件,因此 JAX-WS 解决方案会很棒,但是如果您知道如何使用 XSLT(通过将 WSDL 文件作为简单的 XML 文件处理)也可以.

【问题讨论】:

    标签: java web-services xslt wsdl jax-ws


    【解决方案1】:

    WSDL 中的其他方法困扰您有什么特殊原因吗?我的意思是,拥有它们没有任何害处,您只需调用您的方法并忽略其他方法 :) 话虽如此,总有一个手动编辑 WSDL 的选项(不幸的是,没有 wsimport 选项只能导入具体方法)。只需从 WSDL 中删除所有不必要的方法及其相关元素,然后从新的 WSDL 重新生成 WS 客户端。小心使用您的应用程序在本地存储和检索 WSDL,并且无论 WSDL 是否更改,Web 服务调用都应该成功。如果您害怕手动删除方法,Netbeans 有 XML 和 WSDL 插件。您可以在那里打开您的 WSDL,您将在设计器中看到所有 Web 方法。只需单击您要删除的所有方法(此处称为“操作”),它们就会从文档中消失,而不必担心您搞砸了。下面是一个例子:

    实际上,当您从远程 WSDL 构建 Web 服务客户端,然后 WS 开发人员使用新方法更新原始 WSDL 时,存在类似但相反的情况。如果您将 WSDL 存储在本地,Web 服务调用仍然会成功;无论是否添加新方法。

    另见:

    【讨论】:

    • 原因是它是一个巨大的 WSDL,而我只需要一种方法。它是如此之大,以至于它影响了我的 wsimport-ed 类的加载时间和应用程序构建时间。手动编辑风险太大,我想要一个自动化流程来减少 WSDL 以满足我的需要。我确实保存了 WSDL 的本地副本,否则使用远程副本会使一切变得更慢。谢谢!
    • @gnobal - 欢迎您!不要害怕手动编辑,您可以随时备份原始文件以防出现问题。我已经做过很多次了(不是为了赞美,而是为了向你保证没有什么好害怕的)。我想起了另一种方法(风险较小),所以我更新了答案。
    猜你喜欢
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    相关资源
    最近更新 更多