Java

 Agenda de Contatos (WebService)

Trabalho da Disciplina: Tecnologia WebServices e RESTful
Prof. Carlos L. L. Rischioto

MBA em Desenvolvimento de Aplicações Java - SOA / FIAP
26/11/2011

Adriana Del Nero Romano
Robson de Sousa Martins


Download do código-fonte:

Agenda de Contatos (WebService) (ZIP ~8,1MB)


Tecnologias empregadas:

  • WebService (JWS);
  • XML;
  • JPA;
  • SQLite;
  • UI em modo console (consumer).

Enunciado:

  1. Com base no Schema Contato.xslt criado no exercício anterior, desenvolver um WebService Provider, que implemente a agenda de contatos, os contatos deverão ser persistidos utilizando-se JDBC, JPA ou XML, e possuir os os seguintes métodos:
    1. Inserir um contato;
    2. Excluir um contato;
    3. Consultar um contato pelo e-mail;
    4. Listar todos os contatos.
  2. Utilizando o software soapUI, teste os quatro métodos do WebService, salve os XMLs de Entrada e Saída e entregue junto.
  3. Desenvolva um WebService Consumer, para utilizar o provider desenvolvido no exercício 1, este deverá possuir interface de usuário, em qualquer tecnologia, e consumir os 4 métodos do WebService provider.

Instruções para funcionamento das aplicações:

  1. Importar o projeto no arquivo AgendaWebService.zip para um Workspace do Eclipse;
  2. Executar a aplicação do Provider, através da classe AgendaPublisher do pacote br.com.fiap.ws. O Provider estará então ouvindo na porta TCP 9876 (default).
  3. Abrir uma nova visualização de Console no Eclipse, e executar a aplicação consumidora, através da classe AgendaClient do pacote br.com.fiap.cliente. Um menu em modo console é exibido, e poderá ser utilizado para invocar as operações previstas para essa aplicação.

Detalhes da Implementação:

Agenda Provider (WebService):

  • O Provider da Agenda foi implementado utilizando um Publisher escrito em Java (usando classes JWS) e não necessita de instalação em um Servidor de Aplicações.
  • A persistência dos dados foi implementada com o uso de JPA, sobre o SQLite 0.56.
  • A classe Contato em br.com.fiap.agenda é o bean (POJO), persistido pelo JPA e gerenciado pelo WebService.
  • As classes em "br.com.fiap.dao" são DAO's para manipular os beans persistidos via JPA.
  • A classe GenericDAO é uma classe abstrata que implementa os métodos básicos para acesso ao banco de dados com JPA, e a classe ContatoDAO é a especialização responsável pelo acesso aos objetos persistidos da classe Contato.
  • Na classe GenericDAO existe um atributo 'debugInfo' que pode ser alterado para true para imprimir no console as informações de debug (default = false).
  • As classes em br.com.fiap.ws implementam o WebService Provider, sendo que a classe AgendaPublisher é responsável por inicializar o Provider na porta TCP 9876 (default).
  • A URL default do provider é: http://localhost:9876/agenda ou http://localhost:9876/agenda?wsdl para obter o WSDL.

Consumidor da Agenda:

  • A aplicação consumidora do WebService da Agenda foi implementada usando uma UI em modo console (CUI).
  • As classes que implementam a aplicação consumidora estão no pacote br.com.fiap.cliente, sendo que a principal é a AgendaClient, onde está o método main().

Versões das ferramentas e bibliotecas utilizadas:

  • Eclipse 3.6
  • Java JDK 1.6
  • SQLite 0.56
  • JPA 2 / Hibernate 3
  • SoapUI 4.0.1