Вероятно, самый простой подход - использовать wsimport для файлов WSDL для генерации заглушек на стороне клиента. Затем вы можете вызывать методы в заглушках из Groovy так же, как вы бы вызывали их из Java.
Например, рассмотрим файл WSDL для Microsoft TerraServer, расположенный по адресу http://terraservice.net/TerraService.asmx?wsdl. Затем вы запускаете что-то вроде
wsimport -d src -keep http://terraservice.net/TerraService.asmx?WSDL
, который помещает все скомпилированные заглушки в каталог src. Тогда вы можете написать 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 там, где это облегчает вашу жизнь.