Веб-службы лесов в Grails - PullRequest
0 голосов
/ 30 мая 2009

Мне нужно реализовать веб-приложение, но вместо использования реляционной базы данных мне нужно использовать различные веб-службы SOAP в качестве серверной части. Важная часть приложения вызывает только веб-сервисы и отображает результат. Поскольку веб-службы четко определены в форме операции: в параметрах и типе возврата, мне кажется, что базовый графический интерфейс может быть легко сконструирован, как в случае скаффолдинга на основе доменных сущностей.

Например, в случае работы веб-службы SearchProducts мне нужно ввести параметры поиска в качестве входных данных, чтобы можно было построить страницу поиска. Операция вернет список продуктов, поэтому мне нужна страница, на которой этот список будет отображаться в виде таблицы.

В граале уже есть какая-то библиотека, которая позволяет вам этого достичь. Если нет, как бы вы его создали?

Ответы [ 2 ]

1 голос
/ 17 ноября 2009

Вероятно, самый простой подход - использовать 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 там, где это облегчает вашу жизнь.

0 голосов
/ 17 ноября 2009

Вы можете использовать плагины XFire или CXF . Для автоматического создания скаффолдинга измените шаблон Controller.groovy в шаблонах скаффолдинга, чтобы он автоматически генерировал нужные вам методы.

...