在Java中访问SOAP服务

在Java中访问SOAP服务,java,soap,Java,Soap,我需要访问soap服务,并且我也有wsdl url。我将如何在java中实现这一点?有什么好的教程可以做到这一点吗 我还有一个在android中生成的xml文件来调用soap服务,但它不起作用。是否有任何地方可以粘贴此xml以检查xml是否正确调用Web服务(我正在使用wireshark记录发送的xml,它看起来很好)。最简单的方法是在netbeans中生成客户端Web服务存根。只需创建一个新项目,然后添加新的web服务客户端。提供WSDL并完成您的任务。Netbeans还有一个很棒的web服务

我需要访问soap服务,并且我也有wsdl url。我将如何在java中实现这一点?有什么好的教程可以做到这一点吗


我还有一个在android中生成的xml文件来调用soap服务,但它不起作用。是否有任何地方可以粘贴此xml以检查xml是否正确调用Web服务(我正在使用wireshark记录发送的xml,它看起来很好)。

最简单的方法是在netbeans中生成客户端Web服务存根。只需创建一个新项目,然后添加新的web服务客户端。提供WSDL并完成您的任务。Netbeans还有一个很棒的web服务教程

非常有用的链接:


我建议远离axis web服务客户端。我在axis方面的经验不是很好。到目前为止,netbeans使用的wsimport非常好。使用JAX-WS。

关于问题的第一部分,您可以使用SoapUI()加载WSDL并为其生成Java客户端代码()。我曾经用过这种方法,但也许有更好的方法。

您可以使用
wsimport
(JDK 6的一部分)

请参阅

是一款功能强大且易于使用的Web服务客户端生成工具


也会生成ws-client,但我个人对此有问题。

您必须使用任何Web服务库,如Apache axis或cxf。两者都提供了从wsdl生成客户机代码的功能。您是在记事本上写的吗?没有ide?如何运行axis2 genearted java文件。我已经使用apache-cxf-2.3.2()完成了这项工作。我将生成的java包放在Eclipse中,并检查java文件。在我的例子中,基本的java文件有两个:一个以wsdl的名称命名,另一个以“\u Service.java”结尾。在生成的java类中,还必须有一个以“\u Client.java”结尾。这包含使用生成的类调用wsdl的所有方法的示例代码。您可以将此包导出为jar,将其导入主项目,然后简单地调用ws,如示例代码所示。如果您想在调用ws之前在soap头中添加信息(如身份验证),您可能会发现此链接非常有用()