Web Services

A tecnologia de Web services (Serviços Web) é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis.

Os Web services são componentes que permitem às aplicações enviar e receber dados em formato XML. Cada aplicação pode ter a sua própria "linguagem", que é traduzida para uma linguagem universal, o formato XML.

Os Web services são descritos em WSDL (Webservice Description Language), um padrão baseado em XML para descrever o serviço, juntamente com seus métodos. Essa funciona como uma espécie de “TypeLibrary” do Webservice alem de ser usado para a validação das chamadas dos métodos.

Os Web services podem ser armazenados em um serviço de registro UDDI (Universal Description, Discovery and Integration), que é um Web Service que gerencia informação sobre provedores, implementações e metadados de serviços. Os provedores de serviços podem utilizar o UDDI para publicar os serviços que eles oferecem. Os usuários de serviços podem usar o UDDI para descobrir serviços que lhes interessem e obter os metadados necessários para utilizar esses serviços.

Para trabalhar com Web Services nesta disciplina, usaremos o Apache Axis, que é um framework de código aberto, baseado na linguagem Java e no padrão XML, utilizado para construção de web services no padrão SOAP.

O Axis disponibiliza dois modos para "expor" os métodos de uma classe através de web services. O modo mais simples utiliza os arquivos JWS (Java Web Service) do Axis. O outro método utiliza um arquivo WSDD (Web Service Deployment Descriptor), que descreve com detalhes como serão criados os web services a partir dos recursos (classes Java) existentes.

Também é possível, através do Axis, gerar automaticamente o arquivo WSDL (Web Service Description Language). O WSDL contém a definição da interface dos web services.

Instalação e Execução do Tomcat

Para instalar o Apache Tomcate, é necessário:

1. Fazer download do Tomcat no site do Apache Tomcat. Procure pegar o arquivo ZIP.
2. Instalar ou descompactar em um diretório. Por exemplo: C:\tomcat\

Para a execução, é necessário configurar as seguintes variáveis de ambiente:

JAVA_HOME=diretorio_home_do_java_jdk
JRE_HOME=diretorio_home_do_java_jre

depois disso, dentro do diretório bin do apache, executar:

No Windows:

	catalina.bat run

No Linux:

	./catalina.sh run
Instalação do Axis
1. Fazer download da última versão do Axis;
2. Descompactar o arquivo do Axis;
3. Dentro da pasta webapps, você encontra a pasta axis.
   Copiar essa pasta para o diretório webapps do tomcat.
4. Reinicializar o Tomcat
Exemplo de Web Service: Calculadora

Como exemplo, temos o seguinte código em Java, que possui um único método chamado soma. Este tem do is parâmetros de entrada inteiros e retorna um inteiro como resultado.

public class Calculadora {
	public int soma(int a, int b) {
		return a + b;
	}
}

Salve o código acima com o nome de Calculadora.jws dentro do diretório Axis dentro do Tomcat, criado anteriormente.

Para a verificação do Web Service criado, acesse o sguinte link no navegador:

http://localhost:8080/axis/Calculadora.jws?wsdl

Para testar o Web Service, vamos executar o metodo soma com os dois parâmetros requeridos:

http://localhost:8080/axis/Calculadora.jws?method=soma&a=3&b=5
Usando o Web Service por meio de um programa Java

Para acessar o Web Service criado, por meio de um programa java, é necessário adicionar as bibliotecas necessárias no Eclipse (se for o caso) ou manualmente, assim como os imports necessários para a aplicação java.

import javax.xml.namespace.QName;
import javax.xml.rpc.Call;
import org.apache.axis.client.Service;

class UsaTeste {
	public static void main(String[] args) {
		try {
			String wsLink = "http://localhost:8080/axis/Calculadora.jws";
			Service service = new Service();

			QName port = new QName(wsLink, "Calculadora");
			QName operation = new QName(wsLink, "soma");

			Call call =  service.createCall(port, operation);
			call.setTargetEndpointAddress(wsLink);

			Object[] params = { 2, 8 };
			Integer out = (Integer) call.invoke(params);

			System.out.println(out);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Salve o programa como UsaTeste.java no local de sua preferência ou no projeto de uma aplicação Java criado no Eclipse.

Para podermos compilar e executar a aplicação no Eclipse, é necessário ir nas propriedades do projeto, ir em Java Build Path, Libraries e Add External JARs. Procure pelo diretório WEB-INF/lib dentro do diretório axis que foi colocado no diretório do Tomcat e adicione todas as bibliotecas JAR que estão ali.

[voltar]