terça-feira, 25 de junho de 2013

Criando Web Service em SOAP utilizando AXIS2 em poucos minutos

Olá pessoal, hoje vou demonstrar como criar um web service utilizando protocolo SOAP em poucos minutos. Esse tutorial fará uso do eclipse JUNO como material, porém o mesmo pode ser feito em versões anteriores ao JUNO sem nenhum problema.

O Web Service que criaremos exige que baixemos o AXIS2 que pode ser encontrado no seguinte URL:
http://axis.apache.org/axis2/java/core/download.cgi

Após baixá-lo, descompacte e coloque em um lugar da sua preferência.
No eclipse vá na aba WINDOW->PREFERENCES->WEB SERVICES-> AXIS2 PREFERENCES. Clique no botão "Browse..." para localizar o arquivo recém baixado. Aponte para o arquivo baixado e clique em "Ok".

Pronto o eclipse já está configurado, agora vamos criar de fato nosso web service. Crie um novo projeto do tipo Dynamic Web Project normalmente. Um detalhe muito importante que muita gente esquece é que o Axis2 não dá suporte para o Dynamic Web Module 3.0 ou JSP 3.0 como também é conhecido, portanto defina o DWM como no máximo 2.5 no momento da criação do projeto.

Com o projeto já criado, crie um pacote e uma classe qualquer dentro do mesmo. Nesta classe definiremos quais as funções estarão presentes no nosso web service.

Copie o exemplo abaixo (ridiculamente simples):

public int somar(int x,int y){

return x+y;
}

É importante lembrar que como se trata de um web service os tipos de dados retornados devem ser sempre de tipos primitivos para dar suporte a outras linguagens de programação acessá-lo também. É possível retornar objetos complexos (objetos) em um web service, mas isso fica para um outro post.

Com a classe criada e o método também criado clique com o botão direito em cima da classe no eclipse e vá nas opções NEW->WEB SERVICE.

Uma nova janela será aberta e na opção "Service implementation" deve estar o FQN da sua classe.

Procure por "Configuration" e clique no segundo link: "Web service runtime: Apache Axis". Este link vem apontando para o AXIS por default, porém queremos utilizar o AXIS2 então escolha a opção AXIS2 e confirme para voltar a tela de configurações.

Após esses passos clique em "Next". Na próxima aba na opção para criar o services.xml mantenha a opção selecionada e clique novamente em "Next". Na próxima aba se o seu servidor de aplicação não estiver no ar, haverá um botão chamado "Start server" para iniciá-lo. Clique no botão e espere o servidor subir. Clique novamente em "Next" e na próxima aba em "Finish".

Pronto, seu web service está criado. Agora suba seu projeto como um projeto web normalmente para ver como ficou sua estrutura. Quando o projeto subir você verá uma tela de WELCOME da apache, para verificar o método que você criou dentro do projeto clique em "Services", lá estará o nome e os parâmetros do método criado.

É importante lembrar que esse web service está no formato SOAP, portanto deve haver um WSDL (Web Service Discription Language) que é um arquivo de mapeamento dos métodos contidos no web service para a sua classe criada. O lindo do Axis2 é que ele gera automaticamente o arquivo WSDL para você e você pode visualizá-lo clicando na opção "Services" e no nome da sua classe que está como um link nessa página.

É isso pessoal, nos próximos posts vou mostrar como consumir esse web service através de um STUB e também vou mostrar como consumir um web service que utilize tipos complexos. Também irei mostrar como consumir esses web services com o Android, então fique ligado !

Abraços !!!

Nenhum comentário:

Postar um comentário