用于Java的轻量级SOAP客户端库

时间:2010-03-09 17:01:37

标签: java soap

有人可以推荐一个优秀的Java开源库来构建一个简单的SOAP Web服务客户端吗?我正在寻找可在Java 5 SE环境中运行的具有最小依赖性和配置的东西。升级到Java 6并不是这个项目的一个选项,如果我可以避免使用它,我宁愿避免使用完整的J2EE容器。我不需要发布和服务,只需要消费。

我目前正在使用Axis2,但是我需要提供大约15MB的额外jar,只是为了在没有NoClassDefFoundError的情况下对Web服务进行简单的调用,而且我正在寻找一些不那么臃肿的东西。

我也看过CXF,但我不愿意使用它,因为它与Spring紧密耦合。 Spring不是100%的交易破坏者,但如果可能的话,我宁愿避免它。

有什么建议吗?

3 个答案:

答案 0 :(得分:12)

尝试使用简单的soap-ws库,它非常易于使用。

  

一个轻量级且易于使用的Java库,用于在纯XML级别上处理SOAP。

样本用法

 SoapClient client = SoapClient.builder()
    .endpointUri("http://example.com/endpoint")
    .build();

 client.post(envelope);

依赖

<dependency>
    <groupId>org.reficio</groupId>
    <artifactId>soap-client</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>
来自存储库的

<repository>
    <id>reficio</id>
    <url>http://repo.reficio.org/maven/</url>
</repository>

答案 1 :(得分:7)

在Spring 3.0中,他们将大spring.jar拆分成了可以减小尺寸的模块。

检查Spring Web Services

WS Client Example

缺点是你必须管理很多jar之间的依赖关系,如果你不想引入maven,这可能会变得很复杂。这就是为什么我还在使用轴的原因(其中包括兼容性问题)。

答案 2 :(得分:2)

经过一段时间的研究,原始的SAAJ API(https://saaj.dev.java.net/)是我发现的唯一一个比基于它构建的Spring WS库更精简的东西。 SAAJ的问题在于,除非您愿意使用极其冗长的API来构建消息的XML有效负载,否则它几乎无法使用。有办法绕过这个并使用类似JAXB的东西来生成实际的消息内容,但它不是很干净,而Spring WS本质上就是这样。