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

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

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

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

有什么建议么?

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

检查Spring Web Services

WS客户端示例

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

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

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

样品用法

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

依赖

  org.reficio soap-client 1.0.0-SNAPSHOT  

来自存储库

  reficio http://repo.reficio.org/maven/  

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