【问题标题】:How to invoke webservice without creating any clients for it?如何在不为其创建任何客户端的情况下调用 Web 服务?
【发布时间】:2014-10-14 16:32:30
【问题描述】:

我在谷歌上搜索,但没有找到任何有用的文章。 我想调用 webservice 方法。我有 wdsl,我必须动态调用而不创建任何存根。任何示例都会更有帮助。

【问题讨论】:

  • 有一种方法叫做 REST,它基于 url。如果您有现成的 WSDL,我认为您不能在不创建存根的情况下调用 WS
  • 我认为这里有关于这个主题的类似帖子:stackoverflow.com/questions/2491598/…
  • Web 服务只不过是通过某种传输将 xml 发送到端点。哎呀,您可以只创建一个包含 XML 的 String 并使用 HttpUrlConnection(如果传输是 HTTP)将 XML 发送到端点。您甚至可以使用 JAX-WS 动态地(在运行时!)为您创建 Web 服务的代理。不需要额外的库。

标签: java web-services


【解决方案1】:

希望您正在寻找一种用于调用 Web 服务的工具。更好的用户Soap UI Soap UI 是一个工具,它充当客户端来连接您的网络服务。

【讨论】:

    【解决方案2】:

    有趣的问题。经过一番研究,我在 github 上发现了这个项目,似乎可以满足您的需求。

    https://github.com/reficio/soap-ws

    这是来自 github 站点的一些示例代码,看起来非常简单明了。

    在 60 秒内使用 Web 服务

    让我们使用 CurrencyConverter Web 服务。多亏了流畅的构建器,API 变得简单直观。它需要任何解释吗?欢迎来到soap-ws :)

    Wsdl wsdl = Wsdl.parse("http://www.webservicex.net/CurrencyConvertor.asmx?WSDL");
    
    SoapBuilder builder = wsdl.binding()
        .localPart("CurrencyConvertorSoap")
        .find();
    SoapOperation operation = builder.operation()
        .soapAction("http://www.webserviceX.NET/ConversionRate")
        .find();
    Request request = builder.buildInputMessage(operation)
    
    SoapClient client = SoapClient.builder()
        .endpointUrl("http://www.webservicex.net/CurrencyConvertor.asmx")
        .build();
    String response = client.post(request);
    

    【讨论】:

      【解决方案3】:

      Soap Ui 是一个用于测试生成的 Web 服务的应用程序。您只需要 Wsdl 即可。
      here 是一个链接。

      1. 右键点击生成的wsdl > run as > run in server.

      2. 从浏览器地址栏复制url。

      3. 打开soap iu并点击新项目。

      4. 将 url 粘贴到 wsdl 列中。

      5. 项目将与方法名称一起列出。

      6. 展开方法,点击request1。

      7. 在“?”中输入值这是方法的参数。

      8. 点击运行按钮。

      这是一种模拟在不创建客户端的情况下创建的 Web 服务的方法。肥皂 Ui 应用程序可以作为客户端工作。 希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多