如何创建肥皂客户端?

时间:2011-10-12 05:55:59

标签: java soap-client

我正在运行SOAP服务器。我需要为服务器编写一个SOAP客户端。你可以在eclipse中建议插件或者给我一个与此相关的URL吗?

你能告诉我你有任何样本SOAP客户端代码吗?

我的SOAP客户端应该使用复杂对象作为SOAP函数的parmeter / arguments,它在SOAP服务器中公开。

6 个答案:

答案 0 :(得分:4)

您的问题非常模糊,因此请使用Apache CXF并按照本教程进行操作:

  1. 这是最新的(2011)写作:Creating a SOAP client with either Apache CXF or GlassFish Metro
  2. How to create a WSDL-first SOAP client in Java with CXF and Maven
  3. This demo illustrates Apache CXF's support for SOAP headers
  4. 另外,您也可以使用Apache AXIS2。

答案 1 :(得分:3)

这是一个关于如何创建一个的详细教程:SOAP Client in Java

答案 2 :(得分:3)

假设Java:

1.-执行:

wsimport -keep -p myClient url_to_wsdl

myClient将成为包含生成的客户端工件的文件夹。 url_to_wsdl你的WSDL的URL。

2.-使用包含以下代码的方法创建客户端类:

    YourServiceClass service = new YourServiceClass();
    YourEndpointClass port = service.getPort();
    YourRequestClass request = new YourRequestClass();
    YourMessageClass message = new YourMessageClass(); //In case you have it
    message.setParam1(param1); //depending on your message
    message.setParam2(param2);

    request.setMessage(message);
    YourResponseClass response = port.ServiceOperation(request); //This call locks execution

    System.out.println(response.getMessage().getResponse());
  • YourServiceClass 是扩展javax.xml.ws.Service的生成工件。

  • 可以在调用super.getPort();

    的操作中的YourServiceClass中看到
  • YourEndpointClass

  • YourRequestClass YourResponseClass 取决于如何管理请求和响应消息。

  • YourMessageClass 将是您的消息的包装类(取决于WSDL)。

所有您的*类必须由wsimport生成并导入到您的客户端类。 使用-keep中的标记wsimport,您将能够看到.java文件,并确定完成此代码所需的类。

答案 3 :(得分:1)

将您的eclipse更新到最新版本(我已经看到它也在使用Eclipse Europa 3.3.2 :))。转到新项目向导,在 Web服务下选择 Web服务客户端,单击“下一步”,然后提供Web服务的wsdl文件位置。 Eclipse将自动为您生成Web服务存根。

答案 4 :(得分:0)

这几乎是一个广泛的问题。从我的观点来看,我建议使用Apache CXF:http://cxf.apache.org/

有很好的示例,您可以定义WSDL并生成服务器以及客户端代码。还有maven插件可以自动为你做这个JOB。嵌入由WSDL描述的现有Web服务也是可能的。

但是这更多的是需求和品味。

可以找到替代品,例如在这里:http://java-source.net/open-source/web-services-tools

答案 5 :(得分:0)

你可以看看这个 - > https://github.com/devashish234073/SOAP_GUI_PHP/blob/master/README.md 这是一个简单的PHP客户端。

使用与php [home.php]相同的逻辑,我还添加了java version