Liferay e seus Web Services 7
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
Quem acompanha de perto a rotina da SEA, seja pelo Twitter,
pelo site
ou nos corredores da vida, já sabe o quão
envolvidos estamos com o Liferay Portal Server.
Tornamo-nos sua
primeira parceria oficial no Brasil e comemoramos agora o
título de primeira parceria nível Gold da
América Latina.
Neste tempo, vários projetos foram desenvolvidos e o
aprendizado foi enorme, No intuito de divulgar a tecnologia,
disponibilizamos alguns
slidecasts básicos,
fizemos alguns posts,
mas ainda ficamos na
dívida de uma continuação mais
avançada, que eu espero reverter a partir de agora.
Arquitetura Liferay
Internamente, o Liferay nada mais é do que um monte de
entidades de negócio que compartilham serviços
entre si para a composição do que chamamos de portal.
Cada portlet presente constitui-se de algum conjunto de
serviços que podem ser acessados por outros portlets do
portal ou mesmo por outros aplicativos externos ao servidor.
Esses serviços, geralmente criados a partir de uma
ferramenta interna da Liferay chamada de Service Builder,
compartilham de uma arquitetura padrão, que
até podemos tratar em outro post. Isso quer dizer que, se
você aprender a trabalhar com uma entidade de
negócio do Liferay, você automaticamente
terá aprendido a lógica por trás de
todas as demais entidades. Em síntese, a arquitetura
escolhida define uma estratégia de classes
utilitárias, service locators
e a possibilidade de
exposição local e remota da interface de
serviços em criação.
Dito isso, este post trata de como podemos utilizar a camada de Web
Services do
Liferay para acesso remoto à sua interface
pública de serviços.
Liferay Web Services
Todos os testes apresentados a seguir foram realizados numa
instalação virgem do liferay-portal-5.2-ee-sp4 e
num Eclipse Galileo com todo aquele suporte a JEE.
Primeiro de tudo, vamos ver a lista de serviços
disponíveis para acesso remoto. Para isso, inicie o Liferay
e acesse http://localhost:8080/tunnel-web/axis

Perceba que cada Web Service possui, além de um link para
seu WSDL, um conjunto de operações que podem ser
invocadas.
O próximo passo é a criação
das classes que farão o acesso a esses Web
Services. Você pode fazê-las na mão ou
utilizar-se de alguma ferramenta de apoio. Como não sou
mané, vou gerar todo este código utilizando um
recurso do próprio Eclipse.
Com o Eclipse abert, clique em File > New > Other
> Web Services > Web Service Client.

Em seguida, escolha o Web Service a ser acessado, copie o link de seu
WSDL para o clipboard (Ctrl + C) e informe-o na primeira tela de
criação do Web Service Client.


Clique em Finish
e aguarde a geração do código de
acesso ao Web Service escolhido.

Analise o código gerado e veja o tamanho do galho que a
ferramenta nos quebrou.
Por fim, utilizando as classes geradas, implemente o código
para acesso ao serviço remoto (clique na imagem para
ampliar).
![]() |
Pode até ser trabalhoso, mas é bem mais simples do que pensou, não? Como exercício, tente cadastrar, via Web Service, um novo artigo (JournalArticle) no portal.
[]s

