面向Java的轻量级SOAP客户端库

面向Java的轻量级SOAP客户端库,java,soap,Java,Soap,有人能推荐一个好的Java开源库来构建一个简单的SOAPWeb服务客户端吗?我正在寻找一些具有最小依赖性和配置的东西,它们将在Java5SE环境中工作。升级到Java6并不是这个项目的真正选项,如果可以避免的话,我更愿意避免使用完整的J2EE容器。我不需要发布和服务,只需要消费 我目前使用的是Axis2,但我必须增加大约15MB的JAR,以便在没有NoClassDefFoundError的情况下对web服务进行简单的调用,并且我正在寻找一些膨胀小得多的东西 我也看过CXF,但我不愿意使用它,因为

有人能推荐一个好的Java开源库来构建一个简单的SOAPWeb服务客户端吗?我正在寻找一些具有最小依赖性和配置的东西,它们将在Java5SE环境中工作。升级到Java6并不是这个项目的真正选项,如果可以避免的话,我更愿意避免使用完整的J2EE容器。我不需要发布和服务,只需要消费

我目前使用的是Axis2,但我必须增加大约15MB的JAR,以便在没有NoClassDefFoundError的情况下对web服务进行简单的调用,并且我正在寻找一些膨胀小得多的东西

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


有什么建议吗?

在Spring3.0中,他们已经将大的Spring.jar拆分为模块,这样可以减小大小

检查


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

在研究了一段时间后,我发现原始的SAAJ API()是唯一比构建在它之上的Spring WS库更精简的东西。SAAJ的问题是,除非您愿意使用其极其详细的API来构建消息的XML负载,否则它几乎无法使用。有一些方法可以绕过这个问题,使用JAXB之类的工具来生成实际的消息内容,但它不是很干净,SpringWS本质上就是这样。

试试简单库,它非常容易使用

一个轻量级且易于使用的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>

org.reficio
soap客户端
1.0.0-SNAPSHOT
从存储库

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

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

它是一个嵌入式系统,还是在正常工作时,您为什么要担心15MB?所有额外的依赖项都会增加一个系统的部署时间,更重要的是,从长远来看,这对系统的可维护性是有害的。避免不必要的膨胀是我在软件开发的各个方面努力坚持的原则。我不会写超过完成任务所需的代码,同样,我也不依赖于不需要的库。我很想介绍Maven,但这超出了我的控制范围…听起来越来越像Spring将成为阻力最小的路径。在研究了一段时间后,Spring的实现似乎是唯一没有Axis或CXF的真正选择。这个库是否仍然可以生产?