2011-04-22 209 views
0

我需要在Groovy中編寫Web服務客戶端。 Web服務的作者提出了各種不吸引人的Java代碼blob,我可以用它從我的Grails應用程序中調用服務。Groovy Web服務客戶端

在這一點上,我認爲如果我只是要求他們給我WSDL,我會自己照顧客戶端代碼,這可能會更好。我正在尋找關於僅使用WSDL文檔編寫Groovy Web服務客戶端的最佳方法的建議?

我希望大多數建議都會涉及到使用一些工具來生成客戶端API,我將從我的Grails應用程序調用。如果是這樣,那麼我可以將此API的生成集成到Grails構建中很重要,因爲WSDL文檔可能會經常更改。

我看過使用GroovyWS,它提供了一種非常簡單的調用Web服務的方法。然而,它似乎缺乏任何關於我從測試的角度看我的合同的概念。我想爲Web服務定義一個契約(接口),爲此我提供了一個應用程序將使用的真實實現以及我的單元測試將使用的模擬實現。

+1

你真的想這樣做嗎?爲什麼不僅僅使用不太吸引人的Java代碼塊並將時間花在更高效的任務上呢? – 2011-04-22 09:45:53

+0

因爲在將來某個時候,我將負責維護這些不太吸引人的Java代碼塊。 – 2011-04-22 09:51:17

回答

3

鑑於你的願望更穩定比非常有活力GroovyWS,我建議最簡單的方法:

使用JAX-WSgenerate a Java client,編譯並在Groovy使用它。它都是靜態類型的,並且生成Java源代碼是相當乾淨的(絕對比舊版WS客戶端框架(如Axis 1)好得多)。

當然,這將需要你有權訪問WSDL。