2012-05-16 17 views
13

我只需要一個SOAP客戶端來進行遠程調用,但我是一個Groovy noob。根據Groovy documentation,標準的Groovy SOAP庫已被棄用。相反,文檔指向一個更新的庫:GroovyWSgroovy中使用的標準SOAP庫是什麼?

不幸的是,GroovyWS有表示,這個項目處於休眠狀態,然後它指向你Groovy WSLite警告。

的Groovy WSLite實際上似乎仍然是正在積極發展,但不是很「Groovy的ISH」相比以前的2個庫。 wslite大家都在用什麼?

+0

我對產生這個問題的項目的要求發生了變化,所以我實際上並沒有嘗試@ john-wagenleitner建議的庫,但他的回答似乎是對我的問題最全面的回答。 謝謝大家的答案! – matmer

回答

11

我想你會發現無論GroovyWSgroovy-wslite(和HTTP Builder)是在項目中使用的Groovy的SOAP客戶端庫和決策可能是一個其中的一個工作,哪一個有API /接近首選的用戶(在該訂單)。

如果您喜歡它提供的API以及代理WSDL文檔並查看它是否適用於您需要與之交互的服務,我的建議是嘗試給GroovyWS。 SOAP世界中的事情並沒有太大改變,所以我不會過多擔心它最近被更新了多少。如果它有效,那麼你就完成了,如果你遇到一些問題,你無法找到幫助,那麼我會嘗試替代方案。(免責聲明:我是作者)旨在提供一種輕量級的(依賴關係方面的)替代方案,它交換WSDL解析/代理的便利性,使得更容易控制生成的肥皂調用,而無需深入挖掘像CXF這樣的底層Java框架的內部。有些人更喜歡在像這樣的框架之上建立一個庫的附加功能,而其他人可能更喜歡另一種方法的簡單性。

讓Groovy如此偉大的原因是與Java集成是多麼容易。所以,正如其他人已經指出的那樣,您可以很容易地與Java Web服務客戶端(如Spring WS,CXF和JAX-WS)集成。

2

我會留方式明確groovyws的,它吮吸。 環顧四周後,我終於選擇了使用Spring Web服務和合同驅動的Web服務的解決方案。

該客戶端實例的命令對象與產生肥皂請求XML toxml用於一個()方法。然後使用WebServiceTemplate來sendToEndpoint。

對於服務器,我們使用Spring的web服務端點。解析傳入的xml是孩子的遊戲,您不需要將XML編組爲一個對象,因爲XmlSlurper產生的GPathResult是完全可管理的。我們的服務器運行在Grails之上,因此我們利用了springws grails插件,使端點的創建變得更加簡單。

雖然有一個警告。 grails的springws插件已過時。 Spring Web服務現在是2.x版本,而springws插件自帶1.4.x。然而,沒有這個插件就很容易使用,我認爲將插件升級到更新的API並不難。

另外,如果你想要做MTOM,springws變得有點複雜,因爲你需要深入瞭解的消息處理。但是,我能夠用Spring Web服務做一些非常先進的ws安全性的東西,沒問題。

否則我會用CXF(處理MTOM很好),如果你想堅持使用JAX-WS等。 overhea可能更高,因爲所有動態生成的代理和pojos。 另外,它不是合同驅動的,這對我們來說是一大利好。

http://predic8.com/groovy-web-services-jax-ws.htm

http://cxf.apache.org/docs/how-do-i-develop-a-client.html

+0

FWIW,4年後,並且從SOAP遷移出來,我會爲剩餘的Web服務客戶端提供一次優質的服務。建立服務器端點,我不得不再次研究這個領域。請在2012年的情況下回答我的問題。 – loteq

0

看起來你已經完成了功課yourslef! Groovy WS Lite似乎目前正在運行一個。如果你想看看使用Groovy的spring-ws,那麼這裏是我在github中創建的test suite項目。

相關問題