Pergunta

Eu preciso implementar uma aplicação web, mas em vez de usar banco de dados relacional Eu preciso usar diferentes serviços web SOAP como um back-end. Uma parte importante da aplicação só chama serviços web e exibe o resultado. Desde Web Services estão claramente definidos na forma de operação: Em parâmetros e tipo de retorno parece-me que GUI básica poderia ser facilmente construídos, assim como no caso de andaimes com base em entidades de domínio.

Por exemplo, no caso de operação SearchProducts serviço web que eu preciso para entrar parâmetros de busca como entrada, então a página de pesquisa pode ser construído. Operação irá retornar uma lista de produtos, então eu preciso de uma página que irá exibir esta lista em algum tipo de tabela.

Já existe alguma biblioteca em grails que lhe permitem alcançar este objectivo. Se não, como você iria sobre a criação de um?

Foi útil?

Solução

Você deve ser capaz de usar XFire ou CXF Plugins. Para andaimes automática, modificar seu modelo Controller.groovy em andaimes modelos para que ele gera automaticamente métodos que você precisa.

Outras dicas

Provavelmente a abordagem mais fácil é usar wsimport sobre os arquivos WSDL para gerar os topos do lado do cliente. Então você pode chamar métodos nos topos de Groovy assim como você teria chamado-os de Java.

Por exemplo, considere o arquivo WSDL para TerraServer da Microsoft, localizado em http://terraservice.net/ TerraService.asmx? wsdl . Em seguida, você executar algo como

wsimport -d src -keep http://terraservice.net/TerraService.asmx?WSDL

que coloca todos os topos compilados no diretório src. Em seguida, você pode escrever código Groovy como

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

Se você deseja acessar uma série de serviços web, gerar os stubs para todos eles. Ou você pode usar proxies dinâmicos vez.

A linha de fundo, porém, é deixar Java fazer o que já faz bem, e usar Groovy onde faz sua vida mais fácil.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top