我有一个项目即将要求我从我的java应用程序调用SOAP Web服务。我想知道我应该看哪些工具集来做到这一点?所有建议都表示赞赏。
我看过jax-ws和Axis2,但这些似乎主要是针对Web服务的创建者而不是消费者,我只想消费。
谢谢!
答案 0 :(得分:3)
首先,您需要wsdl。一些服务提供者可能会分发Java客户端类,但WSDL是最安全的方法。
完成后,针对wsdl2java
运行apache-cxf工具或analogous apache-axis。它将创建一堆Java类(您只需要客户端端)。这些工具还能够生成服务器端代码,因此给人的印象是他们的目标是服务开发人员。
这就是您所需要的 - 客户端类将为您处理XML编组/解组和HTTP连接。只需使用适当的存根实现WS端点接口。
您还可以使用WebServiceTemplate
投放组合中的spring-ws。
答案 1 :(得分:2)
Jax-WS附带了一个名为wsimport
的工具,您可以针对SOAP服务的.wsdl运行该工具。它会生成一大堆类,客户端可以使用这些类与服务进行交互。之后,它只是简单的Java编码。
答案 2 :(得分:1)
如果您正在使用eclipse,您可能希望查看此解决方案:
What is the easiest way to generate a Java client from an RPC encoded WSDL
答案 3 :(得分:0)
如果您想要一个快速功能的客户端,您可以使用JAX-WS工具生成使用Web服务所需的代码。但有时这种方法可以生成不可移植的代码(就像使用Websphere工具一样)但是生产力的提高可能是值得的。
Spring Framework还提供了构建和使用Web服务的工具,但它需要一些额外的工作来开发客户端,并且可能需要使用JAXB或Castor等技术手动映射输入/输出消息。您也可以使用Spring直接读取XML,它是一个灵活的框架,可以确保容器之间的可移植性,但需要额外的工作和时间。
每种方法都有利有弊。由你来决定。