也許最簡單的方法是在WSDL文件上使用wsimport來生成客戶端存根。然後,您可以從Groovy的存根中調用方法,就像您從Java調用它們一樣。
例如,考慮位於http://terraservice.net/TerraService.asmx?wsdl的Microsoft TerraServer的WSDL文件。然後你運行類似於
wsimport -d src -keep http://terraservice.net/TerraService.asmx?WSDL
它將所有編譯後的存根放到src目錄中。然後,如果你想查閱了大量的Web服務,爲所有他們的存根,你可以寫Groovy代碼像
import com.terraserver_usa.terraserver.*;
TerraServiceSoap sei = new TerraService().getTerraServiceSoap()
Place home = new Place(city:'Boston',state:'MA',country:'US')
def pt = sei.convertPlaceToLonLatPt(home)
println "$pt.lat, $pt.lon"
assert Math.abs(pt.lat - 42.360000) < 0.001
assert Math.abs(pt.lon - -71.05000) < 0.001
。或者您可以使用動態代理。
儘管如此,底線是讓Java能夠完成它已經做得很好的事情,並使用Groovy來讓您的生活更輕鬆。
非常全面的答案。 – 2012-06-15 09:56:28