Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphere

2,349 views

Published on

Esta apresentação contem um passo a passo mostrando a criação de um Web Service RESTFul utilizando a API Jersey no Eclipse, rodando nos servidores de aplicação Tomcat, JBoss e Websphere

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphere

  1. 1. Web Services RESTful Passo a Passo para criação de um Web Service RESTfull com Jersey / Eclipse / Tomcat Testado também em JBoss e WebSphere Juliano Marcos Martins juliano.jmm@gmail.com http://jmmwrite.wordpress.com
  2. 2. Jersey ● API Java que implementa JAX-RS ● Open source ● Utilitários ● https://jersey.java.net/index.html ● Especificação https://jax-rs-spec.java.net/
  3. 3. Passo 1 ● Baixar a Jersey de https://jersey.java.net/download.html OBS: Existem várias formas diferentes de se implementar, a utilizada aqui, é a que considero a mais simples. Meu fim é didático, não me preocupo nesse momento em desenvolver um código a prova de falhas.
  4. 4. Passo 2 ● Criar um projeto Dinâmico WEB no Eclipse ● Dei o nome de RestTeste ● Adicionei o projeto a um EAR chamado RestTeste ● Marquei a opção abaixo para gerar o web.xml (caso nao tenha marcado, é possível gerar posteriormente)
  5. 5. Passo 3 ● Adicionar as libs abaixo da Jersey ao WEB-INF/lib do projeto
  6. 6. Passo 4 ● Alterei o arquivo WEB.XML – adicionei a parte em laranja, nela, estou mapeando os serviços que criarei. <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name>RestTeste</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <description>JAX-RS Tools Generated - Do not modify</description> <servlet-name>Jersey REST Service</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey REST Service</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app>
  7. 7. Passo 5 ● Criei uma classe chamada ClienteServico
  8. 8. Passo 6 ● Implementei o Web Service. Veja que anotei com @Path para “ouvir” em /clientes. ● O metodo irá “listar” clientes no formato JSON package br.com.jmmwrite.servicos; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.UriInfo; @Path("/clientes") public class ClientesServico { @GET @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8") public String selectAll() { String clientes = "{'nome': 'Cliente 1','endereco': 'Rua do Cliente 1','RG':3030030066}," + "{'nome': 'Cliente 2','endereco': 'Rua do Cliente 2','RG':1010010011}"; return clientes; } }
  9. 9. Passo 6.1 ● No exemplo, estou simplesmente listando algo “hardcoded”. ● Normalmente, neste ponto iríamos efetuar uma invocação a um DAO que iria trazer os dados do banco, e utilizariamos alguma API, tal como GSON, para transformar a lista de clientes num objeto Json bem formatado. ● Também teríamos preocupação com algum mecanismo de segurança para não expor para o mundo um serviço dessa forma.
  10. 10. Passo 7 ● Clicamos no projeto criado e vamos em Run on Server para testar:
  11. 11. Passo 8 ● O projeto deve subir sem erros e ser acessível pela URL http://127.0.0.1:8080/RestTeste/rest/clientes/
  12. 12. Próximos passos ● Como sugestão de estudo, é interessante construir um CRUD. ● Uma dúvida comum é como receber parametros para Inserir/Alterar/Excluir informações, uma forma simples é com o código do proximo slide.
  13. 13. Passo 9 ● O método abaixo recebe parâmetros, adicione o mesmo ao seu Web Service: @GET @Path("/inserir") @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8") public String insertCliente(@Context UriInfo uriInfo ) { // queryParam String nome = uriInfo.getQueryParameters().getFirst("nome"); String endereco = uriInfo.getQueryParameters().getFirst("endereco"); String rg = uriInfo.getQueryParameters().getFirst("rg"); String cliente = "{'nome': '" + nome + "','endereco': '" + endereco + "','rg':" + rg + "}"; return cliente; }
  14. 14. Passo 9 ● Invoque-o utilizando a URL http://127.0.0.1:8080/RestTeste/rest/clientes/inserir? nome=juliano&endereco=ruax&rg=5555555555599
  15. 15. Conclusão ● A ponta do Iceberg é essa. Com esta apresentação você consegue construir um simples CRUD. ● Cada vez mais o mundo demanda Web Services, principalemente com o número crescende de aplicações móveis que acessam aplicativos WEB e Legadas. ● Tenha em mente que implementar um serviço é relativamente fácil, qualquer pessoa implementa, porém, a preocupação com segurança e escalabilidade (volumetria/carga), não são comuns. Cuidado com os problemas que isso possa te gerar! ● Enjoy!

×