gpt4 book ai didi

具有在运行时确定的服务端点的 Java SOAP 客户端 stub 生成

转载 作者:行者123 更新时间:2023-11-30 08:22:01 25 4
gpt4 key购买 nike

以前,我用 Python 编写了 SOAP 客户端并使用了 SUDS 库。在不深入细节的情况下,“ stub ”生成实际上是非常动态的,因为它是在运行时完成的,并且由于 Python 如此无类型,我能够在没有预编译 stub 的情况下引用 WSDL 生成的预期方法。我很乐意使用 wsimport 之类的东西生成 stub ,因为通过良好的 Java 对象结构来处理 SOAP 消息的组合真是太棒了。所以,我不是在寻找类似于 Python 中的 SUDS 的动态生成机制。

我的问题是,我看到的所有简单 JAX-WS 示例都是针对我将称之为“静态定位的 Web 服务”的内容。我正在尝试做的是连接到具有已知 WSDL 的 Web 服务,我可以在编译时从中生成 stub ,但其位置仅在运行时才知道。例如,假设我想访问 Microsoft SharePoint Web 服务。无论我的应用程序部署在哪里,都会运行一个或多个不同的 SharePoint 服务器,这需要在运行时指定。我见过的所有简单示例都通过 wsimport 将服务位置 URL 硬编码到 stub 中。有没有办法生成 stub 但在运行时提供服务位置?

我真的很惊讶没有找到任何这样的例子,因为我认为我正在尝试做的事情随着 Web 服务的发展应该非常普遍。或许答案是,如果服务器位置仅在运行时已知,我就不能偷懒并获得一个很好的 WSDL 方法的对象化版本。我看过 SAAJ 示例,但在那里,当然,我必须自己手动生成 SOAP 消息。如果 WSDL 在编译时已知,那将是一种耻辱。我不能吃我的蛋糕吗?

最佳答案

如果我对您的问题的理解正确,您想要连接到公开相同 WSDL 但位于不同地址的多个 Web 服务,并且您的客户端仅包含用于生成它的服务的地址?

在这种情况下,请查看这篇文章:Changing WSDL url (endpoint) in JAX-WS client .

关于具有在运行时确定的服务端点的 Java SOAP 客户端 stub 生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24703195/

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