簡體   English   中英

用於Java的輕量級SOAP客戶端庫

[英]Lightweight SOAP Client Library for Java

任何人都可以推薦一個好的Java開源庫來構建一個簡單的SOAP Web服務客戶端嗎? 我正在尋找可在Java 5 SE環境中運行的具有最小依賴性和配置的東西。 升級到Java 6並不是這個項目的一個選項,如果我可以避免使用它,我寧願避免使用完整的J2EE容器。 我不需要發布和服務,只需要消費。

我目前正在使用Axis2,但我必須提供大約15MB的額外罐子才能在沒有NoClassDefFoundError的情況下對Web服務進行簡單的調用,而且我正在尋找一些不那么臃腫的東西。

我也看過CXF,但我不願意使用它,因為它與Spring緊密耦合。 Spring不是100%的交易破壞者,但如果可能的話,我寧願避免它。

有什么建議?

嘗試使用簡單的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>

在Spring 3.0中,他們將大spring.jar拆分成了可以減小尺寸的模塊。

檢查Spring Web Services

WS客戶端示例

缺點是你必須管理很多jar之間的依賴關系,如果你不想引入maven,這可能會變得很復雜。 這就是為什么我還在使用軸的原因(其中包括兼容性問題)。

經過一段時間的研究,原始的SAAJ API( https://saaj.dev.java.net/ )是我發現的唯一一個比基於它構建的Spring WS庫更精簡的東西。 SAAJ的問題在於,除非您願意使用極其冗長的API來構建消息的XML有效負載,否則它幾乎無法使用。 有辦法繞過這個並使用類似JAXB的東西來生成實際的消息內容,但它不是很干凈,而Spring WS本質上就是這樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM