-
Java
Agenda de Contatos (WebService)
Trabalho da Disciplina: Tecnologia WebServices e RESTful
Adriana Del Nero Romano
Robson Martins
Prof. Carlos L. L. Rischioto
MBA em Desenvolvimento de Aplicações Java - SOA / FIAP
26/11/2011
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:
-
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:
- Inserir um contato;
- Excluir um contato;
- Consultar um contato pelo e-mail;
- Listar todos os contatos.
- Utilizando o software soapUI, teste os quatro métodos do WebService, salve os XMLs de Entrada e Saída e entregue junto.
- 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:
- Importar o projeto no arquivo
AgendaWebService.zip
para um Workspace do Eclipse; - Executar a aplicação do Provider, através da classe
AgendaPublisher
do pacotebr.com.fiap.ws
. O Provider estará então ouvindo na porta TCP 9876 (default). - Abrir uma nova visualização de Console no Eclipse, e executar a aplicação consumidora, através da classe
AgendaClient
do pacotebr.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
embr.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 classeContatoDAO
é a especialização responsável pelo acesso aos objetos persistidos da classeContato
. - Na classe
GenericDAO
existe um atributo 'debugInfo
' que pode ser alterado paratrue
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 classeAgendaPublisher
é responsável por inicializar o Provider na porta TCP 9876 (default). - A URL default do provider é:
http://
oulocalhost:9876/ agenda http://
para obter o WSDL.localhost:9876/ agenda?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 é aAgendaClient
, onde está o métodomain()
.
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