Buscar

SD_14_15_FP11

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade da Beira Interior 
 
 Sistemas Distribuídos - 2014/2015 Curso: Engª Informática 
 
Folha 11 
Paula Prata, Departamento de Informática da UBI 
 
 JAX-RS: Java API for RESTful Web Services 
 
A - Creating RESTful Web Services from a Database 
 
1- Comece por criar um projeto do tipo “Java Web application”, como fez nos exercícios das 
fichas anteriores. No exemplo que ilustra este exercício o nome do projecto foi ws1. 
 
2 – Gerar entity classes e RESTful Web Services: 
- Clicando com o botão direito do rato sobre o nó do projecto seleccione New /Other /Web 
Services / RESTful WebServices. Após Next, o “New RESTful Web Service wizard” abre no 
painel das tabelas da base de dados. . 
- Em Data Source seleccione jdbc/sample e aparecerão as tabelas da base de dados exemplo com 
que já trabalhou. Selecione a tabela Customer. 
 
 
 
- Após Next, atribua um nome ao package onde irão ser colocadas as entities a criar. 
- Após Next, poderá ver uma janela com o nome do package onde irão ser colocadas as classes 
do serviço a criar, entities.services. 
 
 
 
Universidade da Beira Interior 
 
 Sistemas Distribuídos - 2014/2015 Curso: Engª Informática 
 
Folha 11 
Paula Prata, Departamento de Informática da UBI 
 
 
- Após Finish, o editor irá criar as entities, tal como já tinha feito em exercícios anteriores. Pode 
observar as entities criadas no package entities. 
 
- No package entities.service pode observar que para cada entity foi criado um stateless Session 
Bean, CustomerFacadeREST, DiscountCodeFacadeREST e MicroMarketFacadeREST. que 
contêm as operações base para manipular os dados das tabelas correspondentes. 
Observe que estas três classes são subclasses da classe abstracta AbstractFacade. Esta classe é 
uma classe genérica que pode ser parametrizada com diferentes tipos de dados. Neste caso com 
Customer, DicountCode e MicroMarket consoante a tabela que queremos manipular. 
 
- Observe ainda que é criada uma classe de configuração ApplicationConfig.java. 
 
B - Testar o RESTful Web Service localmente. 
 
- Clicando com o botão direito do rato sobre o nó do projecto, seleccionar a opção “Test RESTful 
Web Services”. Selecione a opção, Locally generated Test Client … e após “ok”, o editor gerará 
o ficheiro test-resbeans.tml (ver default package) faz o deploy da aplicação e inicia a execução. 
 
 
 
 
 
No seu browser aparecerá a janela ilustrada abaixo que tem do lado esquerdo um no para cada 
uma das entities criadas: 
 
 
 
Universidade da Beira Interior 
 
 Sistemas Distribuídos - 2014/2015 Curso: Engª Informática 
 
Folha 11 
Paula Prata, Departamento de Informática da UBI 
 
 
 
 
 
 
Expanda os nós e explore as operações disponibilizadas. 
 
Na janela de output tem 5 abas: Em Raw View pode observar o resultado do query seleccionado. 
 
 
 
 
 
Pode também aceder directamente à página anterior com o endereço: 
 
http://localhost:8080/ws1/test-resbeans.html 
 
 
 
 
Para aprofundar o estudo veja: http://docs.oracle.com/javaee/7/tutorial/ (capítulos 29, 30 e 31) 
Universidade da Beira Interior 
 
 Sistemas Distribuídos - 2014/2015 Curso: Engª Informática 
 
Folha 11 
Paula Prata, Departamento de Informática da UBI 
 
B – Explorar o exemplo rsvp 
 
Os exemplos do tutorial do Java EE 7 são instalados na diretoria 
as-install-parent/docs/javaee-tutorial/examples, onde as-install-parent será 
 
Solaris / Linux / Mac - user's-home-directory/glassfish4/glassfish 
Windows - SystemDrive:\glassfish4\glassfish 
 
Se não tiver os exemplos, pode actualizar o seu tutorial: 
 
2.8.1 To Update the Tutorial Using NetBeans IDE 
1. Open the Services tab in NetBeans IDE and expand Servers. 
2. Right-click the GlassFish Server instance and select View Domain Update Center to display the Update Tool. 
3. Select Available Updates in the tree to display a list of updated packages. 
4. Look for updates to the Java EE 7 Tutorial (javaee-tutorial) package. 
5. If there is an updated version of the Tutorial, select Java EE 7 Tutorial (javaee-tutorial) and click Install. 
 
Para poder abrir alguns dos exemplos do tutorial do Java EE 7 é necessário que instale no seu 
editor os “Tutorial Archetypes”: 
… 
 
2.7.1 Installing the Tutorial Archetypes 
You must install the included Maven archetypes into your local Maven repository before you can create new 
projects based on the archetypes. You can install the archetypes using NetBeans IDE. 
2.7.1.1 Installing the Tutorial Archetypes Using NetBeans IDE 
1. From the File menu, choose Open Project. 
2. In the Open Project dialog box, navigate to: tut-install/examples 
3. Select the archetypes folder. 
4. Click Open Project. 
5. In the Projects tab, right-click the archetypes project and select Build. 
 
1 – Abra e execute o exemplo “rsvp” seguindo os passos seguintes: 
 
1. If the database server is not already running, start it by following the instructions in Starting and Stopping the 
Java DB Server. 
2. Make sure that GlassFish Server has been started (see Starting and Stopping GlassFish Server). 
3. From the File menu, choose Open Project. 
4. In the Open Project dialog box, navigate to: tut-install/examples/jaxrs 
5. Select the rsvp folder. 
6. Click Open Project. 
7. In the Projects tab, right-click the rsvp project and select Run. The project will be compiled, assembled, and 
deployed to GlassFish Server. A web browser window will open to the following URL: 
http://localhost:8080/rsvp/index.xhtml 
8. In the web browser window, click the Event status link for the Duke's Birthday event. You'll see the current 
invitees and their responses. 
9. Click the current response of one of the invitees in the Status column of the table, select a new response, and click 
Update your status. 
The invitee's new status should now be displayed in the table of invitees and their response statuses. 
Universidade da Beira Interior 
 
 Sistemas Distribuídos - 2014/2015 Curso: Engª Informática 
 
Folha 11 
Paula Prata, Departamento de Informática da UBI 
 
2 – Explore o exemplo. 
 
 
a) 
- Observe que foi criada a base de dados “sun-apserv-samples”. Analise as tabelas da base de 
dados e as respectivas “entities” que lhe deram origem: Event, Person e Response. 
 
b) 
- O bean “Configbean” inicializa a base de dados. 
- O Bean “StatusBean” expõe os recursos para mostrar o estado dos convidados para um dado 
evento. 
- O bean “ResponseBean” expõe os recursos para actualizar a resposta de um convidado para um 
dado evento. 
 
c) 
- A classe “RsvpApplication” é subclasse de Application e define o URI base para os recursos da 
aplicação: @ApplicationPath("/webapi") 
- Observe que quando executa a aplicação ela abre no endereço: 
http://localhost:8080/rsvp/index.xhtml 
 
d) 
- Observe as 3 páginas xhtml. 
 
e) 
- A API JAX-RS Client permite aceder a recursos REST usando classes JAVA. Neste exemplo 
são usadas as classes EventManager e StatusManager. Nestas classes são criadas instâncias da 
javax.ws.rs.client.Client, nas quais se podem chamar recursos REST.

Outros materiais