有人可以推荐一个优秀的Java开源库来构建一个简单的SOAP Web服务客户端吗?我正在寻找可在Java 5 SE环境中运行的具有最小依赖性和配置的东西。升级到Java 6并不是这个项目的一个选项,如果我可以避免使用它,我宁愿避免使用完整的J2EE容器。我不需要发布和服务,只需要消费。
我目前正在使用Axis2,但是我需要提供大约15MB的额外jar,只是为了在没有NoClassDefFoundError的情况下对Web服务进行简单的调用,而且我正在寻找一些不那么臃肿的东西。
我也看过CXF,但我不愿意使用它,因为它与Spring紧密耦合。 Spring不是100%的交易破坏者,但如果可能的话,我宁愿避免它。
有什么建议吗?
答案 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拆分成了可以减小尺寸的模块。
缺点是你必须管理很多jar之间的依赖关系,如果你不想引入maven,这可能会变得很复杂。这就是为什么我还在使用轴的原因(其中包括兼容性问题)。
答案 2 :(得分:2)
经过一段时间的研究,原始的SAAJ API(https://saaj.dev.java.net/)是我发现的唯一一个比基于它构建的Spring WS库更精简的东西。 SAAJ的问题在于,除非您愿意使用极其冗长的API来构建消息的XML有效负载,否则它几乎无法使用。有办法绕过这个并使用类似JAXB的东西来生成实际的消息内容,但它不是很干净,而Spring WS本质上就是这样。