Criando Web Service utilizando o “Eclipse Juno"
A ideia deste artigo não é explorar conceitos mais profundos de “Web Services” e sim utilizar as ferramentas essenciais utilizando a linguagem Java. Para apenas relembrar os conceitos básicos do funcionamento de um “Web Service”, é importante ter em mente que sua principal função é de compartilhar, integrar dados entre sistemas de diferentes tipos de plataformas (Windows, Unix, Mac, MainFrame) e linguagens distintas (C#, VB, Java, Cobol, PHP, Delphi). O “Web Service” funciona como elo entre dois sistemas, pois é baseado em tecnologias abertas (XML e SOAP) que são reconhecidas em todas as plataformas descritas anteriormente. Para entendermos melhor iremos supor que a empresa The Club possui um sistema interno com todos os dados dos sócios e este possui relação com outros tipos de dados que precisaremos exibi-los em nosso site, sem precisarmos duplicar estas informações, a criação de um “Web Service” entra em ação neste momento. Resolveremos este tipo de situação programando um “Web Service” no servidor principal e disponibilizaremos o endereço URL do mesmo para o Site, ficando sempre atualizado e evitando o re-trabalho destas tarefas.
Funcionamento de um “Web Service”
Para entender o funcionamento de um “web service”, vamos supor que um cliente faz uma solicitação HTTP simples pelo navegador e o servidor onde está o “Web Service” faz um retorno com os dados processados em formato XML, de acordo com o arquivo WSDL.
Ver Imagem 01 para maiores detalhes.

Figura 01: Funcionamento de um “Web Service”.
Tendo em mente este conceitos básicos podemos dar continuidade ao artigo, então, mãos a obra.
Pré-Requisitos
Teremos que instalar e configurar algumas ferramentas, sendo:
1) Eclipse Juno: Ferramenta IDE para desenvolvimento do “Web Service”.
2) Apache Axis2: Framework para construção de “Web Services” no padrão SOAP.
3) Apache Tomcat: Servidor para publicar o “Web Service”.
Abaixo irei dar uma breve descrição sobre suas funcionalidades, onde baixá-los e a instalação e configuração necessária para um bom funcionamento. Todas estas ferramentas são freewares (gratuitas).
1) Eclipse Juno
É uma das principais IDEs de desenvolvimento Java, se tornando uma referência no desenvolvimento de softwares em geral. Esta versão Juno é uma das últimas lançadas (fim de junho de 2012), sendo que achei necessário destacar algumas características como o uso do Eclipse 4.x como plataforma, sendo que todas as versões anteriores ao Juno se embasavam na versão 3.x. A plataforma 4.x, que vem se desenvolvendo há algum tempo, apresenta mudanças significativas em alguns aspectos operacionais da IDE. Isso apresenta um desempenho melhor e um código mais limpo. É importante lembrar que apesar destas mudanças de plataforma, existirá compatibilidade para plug-ins desenvolvidos para a versão 3.x. Outro detalhe importante nesta versão é o suporte completo a versão 7 (sete) do Java, garantindo que o compilador já implementa por padrão todas as funcionalidade desta nova versão da linguagem, bem como o conjunto de ferramentas de desenvolvimento. Resumindo, para trabalharmos com desenvolvimento de “Web Services” esta ferramenta se comportou com total compatibilidade e facilidade.
Download
Ver Imagem 02 para maiores detalhes.

Figura 02: Download do Eclipse.
Recomendo utilizar a opção “South America” para realizar o download.
Instalação
Importante: Antes de instalar o Eclipse é necessário possuir instalado o Java.
Recomendo criar uma pasta no “C:\Softwares” para uma melhor organização de agora em diante. Todos os arquivos do Eclipse serão descompactados nesta pasta. Não existe instalação em si, apenas extraia os arquivos para podermos utilizá-lo daqui para frente. O nome da pasta contendo os arquivos deverá chamar “eclipse-jee-juno-SR1-win32” ou algo parecido. Arraste um atalho do executável para onde desejar trabalhar.
2) Apache Axis2
O Apache Axis2 é utilizado para fornecer e consumir “Web Services”. Pode funcionar como um “facilitador” de serviços Web embutido em outro software suportando o padrão “SOAP 1.1”, “SOAP 1.2” e o “REST”. Através do Axis2 os desenvolvedores podem criar aplicações distribuídas. Além da versão para Java, é importante salientar que existe uma implementação baseada na linguagem “C++” (Não iremos entrar em detalhes neste artigo). Através do Axis2 podemos gerar automaticamente o arquivo “WSDL” (Web Service Description Language) contendo as definições da interface dos “Web “Services”.
Download
A Figura 03 nos dá mais detalhes.

Figura 03: Download do Axis2.
Localize a região “1.6.x releases” que significa as últimas versões lançadas, e em “Distribution” baixe a versão “Binary Distribution” escolhendo a extensão “zip”.
Instalação
Apenas descompacte a pasta dos arquivos e salve na pasta “C:\Softwares”. O nome deverá ficar parecido com “axis2-1.6.2-bin”.
3) Apache Tomcat
O Tomcat é um Servidor de Aplicações Java (“Conteiner Servlet”), servindo para interpretar aplicações escritas em Java para Web. Para quem não sabe, ele foi desenvolvido pela “Apache Software Foundation”. O Tomcat também possui outras características como atuar integrado a um servidor web dedicado como o Apache ou o “IID” (“Internet Information Service”), provendo um servidor web “HTTP” puramente em Java. Inclui ferramentas para configuração e gerenciamento.
Download
Ver Imagem 04.

Figura 04: Download do Tomcat.
Deslize a página até localizar a região 6.0.37 (significa a última versão até a data da publicação deste artigo). Em “Binary Distributions” (Distribuições em formato Binário) o item “Core” no meu caso utilizei a “32-bit Windows zip (PGP, md5)” que significa versão 32 Bits para o S.O. Windows.
Instalação
Para realizar a instalação basta descompactar o arquivo que foi baixado anteriormente e salvá-lo em uma pasta. O nome do arquivo baixado deverá ficar idêntico a “apache-tomcat-6.0.37-windows-x86”.
Importante: Localize a pasta “\bin” do “axis2” em “C:\Softwares\axis2-1.6.2\bin” para copiarmos todos os arquivos contidos e colarmos todas as referências na pasta “\Lib” do “apache tomcat” em “C:\Softwares\apache-tomcat-6.0.37\lib”. Estes procedimentos foram necessários para termos acesso ao framework do Axis2 em nosso servidor de aplicações.
Ver Figura 05 todos os programas essenciais.

Imagem 05: Softwares Instalados.
Preparando o ambiente de desenvolvimento
Neste momento é onde iremos configurar todo o ambiente de desenvolvimento. No primeiro momento vou configurar o Axis2 e logo em seguida o servidor Tomcat. Deveremos abrir o Eclipse Juno e clicar no item de menu “Window/Preferences”. No menu lateral esquerdo deve-se ir na opção “Webservices/Axis2 Preferences”. Ver Imagem 06.

Figura 06: Axix2 Preferences.
Nesta parte teremos duas opções, sendo: “Axis2 Run Time” (Axis2 em tempo de execução) e “Axis2 Preferences” com inúmeras configurações a serem abordadas. Clique na primeira opção e coloque o caminho onde o Axis2 foi instalado. Logo abaixo irá aparecer uma mensagem indicando que a configuração foi realizada com sucesso. Já na aba “Axis2 Preferences” marque a opção “Generate an Interface for Skeleton” para gerar apenas uma interface para o lado do servidor.
Na opção do menu na lateral esquerda localize o item “Webservice/Server and RunTime”. Ver Imagem 07.

Figura 07: Server and RunTime.
Aqui iremos selecionar em “Server RunTime” a versão 6 do servidor “Apache Tomcat” e em “Web service runtime” o framework “Apache Axis2”.Clique no botão “Apply” para finalizar esta etapa.
Agora deveremos configurar o Tomcat6. Para isto deveremos selecionar novamente a opção “Window/Preferences” e localizar a opção “Server/Runtime Environments” que significa executar ambientes em tempo de execução. Clique em “Add’ e selecione a versão 6 do Apache Tomcat. Ver Imagem 8. Clique em “Next”.

Figura 08: Selecionando o servidor Apache Tomcat.
Na próxima tela de configuração teremos o nome como: “Apache Tomcat v6.0”, o local onde deveremos indicar onde o Tomcat foi instalado e a versão do Eclipse que iremos trabalhar. Clique em “Finish” para encerrar esta etapa. Ver Imagem 09.

Figura 09: Configurações gerais do Tomcat.
Voltando para tela principal do Eclipse, localize na região inferior a aba chamada “Servers”. É exatamente aqui que adicionaremos o servidor Apache Tomcat. Clique com o botão direito Escolhendo “New/Server”. Ver Imagem 10.

Figura 10: Adicionando o servidor.
Na próxima tela escolha em “Server Runtime Environment“ o servidor previamente configurado e clique em “Finish”.
Criando o Exemplo
Deveremos clicar em “File/New/Other...” navegar até a aba Web/Dynamic Web Project”. Clique em “Next” para darmos continuidade. Ver Imagem 11.

Figura 11: Criando um “Dynamic Web Project”.
Em “Project name” defina como “webservicetc”. Escolha um local para ser salvo o projeto em “Project location”. Em “Target runtime” por padrão estará configurado o servidor Apache Tomcat 6 configurado anteriormente. Usaremos a última versão em “Dynamic web module version” e em “Configuration” teremos que modificar alguns parâmetros, para isto clique em “Modify...”. Ver Imagem 12.

Figura 12: Configurações.
Adicione o Item “Axis2 Web Services” para usarmos ao decorrer do desenvolvimento todas as extensões instaladas do Axis2. Finalizamos este processo clicando em “Ok”.
Codificando o exemplo
O nosso “Web Service” funcionará da seguinte forma. Teremos uma classe com os dados dos clientes chamada“Clientes.java” e outra “TheClubWS.java” para carregarmos a classe Cliente e retorná-la em formato XML.
Classe “Clientes.java”
Localize no projeto a pasta “Java Resources/src” para criarmos um pacote chamado “theclub”. Para quem não sabe, clique com o botão direito e escolha “New/Package”. Dentro deste pacote é onde a classe “Clientes.java” deverá estar localizada. Criaremos alguns atributos como: Id, Nome, Tipo, Cidade. Programe corretamente os métodos “Get” e “Set” para posteriormente podermos obter e devolver valores. Ver Listagem abaixo:
package theclub;
public class Clientes
{
private int Id;
private String Nome;
private String Tipo;
private String Cidade;
public int getId()
{
return Id;
}
public void setId(int id)
{
Id = id;
}
public String getNome()
{
return Nome;
}
public void setNome(String nome)
{
Nome = nome;
}
public String getTipo()
{
return Tipo;
}
public void setTipo(String tipo)
{
Tipo = tipo;
}
public String getCidade()
{
return Cidade;
}
public void setCidade(String cidade)
{
Cidade = cidade;
}
public Clientes()
{
}
}
Classe TheClubWS.java
Repetimos o processo descrito acima para implementarmos a classe “TheClubWS.java”. Vamos criar um método que terá como retorno uma lista de Clientes. Ver código abaixo:
package theclub;
Importe as bibliotecas para trabalharmos com Listas e Vetores do tipo Listas respectivamente.
import java.util.ArrayList;
import java.util.List;
public class TheClubWS
{
public List<Clientes> SelecionarClientes()
{
List<Clientes> list = new ArrayList<Clientes>();
try
{
Clientes clientes1 = new Clientes();
clientes1.setId(1);
clientes1.setNome("Thiago");
clientes1.setTipo("Físico");
clientes1.setCidade("Avaré");
list.add(clientes1);
Clientes clientes2 = new Clientes();
clientes2.setId(2);
clientes2.setNome("Marcos");
clientes2.setTipo("Físico");
clientes2.setCidade("Avaré");
list.add(clientes2);
Clientes clientes3 = new Clientes();
clientes3.setId(3);
clientes3.setNome("Vitor");
clientes3.setTipo("Físico");
clientes3.setCidade("Avaré");
list.add(clientes3);
Clientes clientes4 = new Clientes();
clientes4.setId(4);
clientes4.setNome("The Club");
clientes4.setTipo("Jurídico");
clientes4.setCidade("Avaré");
list.add(clientes4);
return list;
}
catch (Exception e)
{
return null;
}
}
}
O método SelecionarClientes() terá como retorno uma variável do tipo lista de Clientes. Alimentaremos a classe Clientes com alguns dados e armazenaremos o resultado em uma variável do Tipo ArrayList.
Na aba Project Explorer clique com o botão direito sobre a classe “theClubWS” e localize a opção “Web Services/Create Web Service”. Ver Imagem 13.

Figura 13: Gerando o “Web Service”.
Nesta tela temos algumas informações do lado servidor como Tipo, Implementação, demonstrativo de configurações do servidor Tomcat, do framework Axis2 e do projeto em questão. Temos também configurações do lado cliente, que por padrão deixaremos como “No Client”. Clique em “finish” para finalizar a etapa de criação do “web service”. Rode a aplicação de exemplo e terá uma tela parecida com a Imagem 14.

Figura 14: Run On Server.
Nesta tela teremos opções de escolher o servidor Apache Tomcat que já está pré-configurado ou definir um novo servidor. Deixaremos como padrão clicando no botão Finalizar. A Figura 15 é a tela de boas vindas e indica que tudo ocorreu corretamente. A opção “Services” nos dará maiores detalhes sobre os “web services” rodando no momento.

Figura 15: Tela de Boas Vindas.
A Figura 16 nos dá uma descrição completa do “Web Service”, como por exemplo, o local onde está publicado, o status e todas as operações disponíveis. Clique sobre o “TheClubWS” para conferir o XML correspondente.

Figura 16: Descritivo do Serviço.
A Figura 17 nos mostra todo o código XML.

Figura 17: XML Correspondente.
Podemos consumir este serviço em qualquer plataforma ou linguagem de programação como foi dito no começo do artigo. Basta atribuir o endereço citado anteriormente que será listado os métodos contidos neste serviço, no caso será listado o método SelecionarCliente(), tendo como retorno uma lista de dados dos Clientes. Por exemplo, utilizando o Microsoft Visual Studio (Para maiores detalhes recomendo a leitura do artigo “Asp.Net – Trabalhando com Web Services”, que poderá ser conferido no mês 05/2013) teremos um retorno idêntico ao da Figura 18.

Figura 18: Consumindo ‘Web Service”.
Conclusão
Utilizando a linguagem Java, aprendemos neste artigo um pouco sobre todas as ferramentas necessárias para construir “Web Services”. Envolvemos a versão Juno do Eclipse, o servidor de aplicação Web Apache Tomcat e o framework Axis2 para publicação no padrão SOAP. Exploramos deste o download até a instalação e configuração no ambiente de desenvolvimento. Montamos também um pequeno exemplo envolvendo os conceitos fundamentados ao decorrer deste artigo.
Espero que tenham gostado um forte abraço e até o mês que vem!
Nenhum comentário:
Postar um comentário