Java 如何创建soap客户端?

Java 如何创建soap客户端?,java,soap-client,Java,Soap Client,我有SOAP服务器在运行。我需要为服务器编写一个SOAP客户端。你能推荐eclipse中的插件吗?或者给我与此相关的URL 如果您有任何SOAP客户端代码示例,请提供给我好吗 我的SOAP客户端应该使用复杂对象作为SOAP服务器中公开的SOAP函数的参数 这里有一个关于如何创建的详细教程:这是一个相当宽泛的问题。从我的观点来看,我建议使用Apache CXF: 有相当好的示例,您可以定义WSDL并生成服务器和客户机代码。还有一些maven插件可以自动为您完成这项工作。嵌入WSDL描述的现有web

我有SOAP服务器在运行。我需要为服务器编写一个SOAP客户端。你能推荐eclipse中的插件吗?或者给我与此相关的URL

如果您有任何SOAP客户端代码示例,请提供给我好吗


我的SOAP客户端应该使用复杂对象作为SOAP服务器中公开的SOAP函数的参数

这里有一个关于如何创建的详细教程:

这是一个相当宽泛的问题。从我的观点来看,我建议使用Apache CXF:

有相当好的示例,您可以定义WSDL并生成服务器和客户机代码。还有一些maven插件可以自动为您完成这项工作。嵌入WSDL描述的现有web服务也是可能的

但是,这更多的是要求和品味的问题


您可以在这里找到其他选择,例如:

您的问题非常模糊,因此请使用并遵循本教程:

  • 这是最近(2011年)的一篇文章:

  • 另一方面,您也可以使用ApacheAxis2。

    将您的eclipse更新为最新版本(不过我也看到它与EclipseEuropa3.3.2一起工作:)。转到“新建项目向导”,在“Web服务”下选择“Web服务客户端”,单击“下一步”,然后给出Web服务的wsdl文件位置。Eclipse将自动为您生成web服务存根。

    假设Java:

    1.执行:

    wsimport -keep -p myClient url_to_wsdl
    
    其中myClient将是一个包含生成的客户端工件的文件夹。url\u to\u 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生成的工件

    • YourEndpointClass可以在调用super.getPort()的操作中的YourServiceClass中看到

    • YourRequestClassYourResponseClass将取决于如何管理请求和响应消息

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

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

    你可以看看这个--> 这是php中的一个简单SOAP客户端


    使用与php相同的逻辑,我还添加了

    ,您应该更具体地了解您要做什么。哪种语言?到目前为止,您尝试了什么?您好,谢谢您的快速回复,我想用java创建一个解决方案,可能是import org.apache.axis.client,我不知道它是否合适,但这可能有助于我创建一个关于java 7支持的it,上面写着“TBD”。