chamando um web service rest com jsf

7
19/02/2015 Chamando um web service REST com JSF public class UniversidadeJava { http://www.universidadejava.com.br/docs/chamandoumwebservicerestcomjsf 1/7 public class UniversidadeJava { Página inicial Apresentações Materiais Certificações Conheça os professores docs > Chamando um web service REST com JSF postado em 6 de dez de 2012 09:07 por Rafael Sakurai O serviço web (web service) é uma forma de integração bem utilizada atualmente para realizar a integração entre aplicações. O Web Service REST é uma das formas de criar um serviço web, que utilizada muito o protocolo HTTP para realizar essa integração entre as aplicações. O Web Service REST pode disponibilizar através do protocolo HTTP métodos para manipulação de informações, por exemplo: ao fazer uma requisição HTTP através do método GET para a URL http://localhost:8080/CinemaREST/servico/filmes é possível obter um recurso, que nesse caso é uma lista de filmes. Se chamar essa URL através de um navegador podemos verificar o retorno desse Web Service REST. Para consumir um Web Service REST, existem diversas implementações possíveis, uma delas é através da API Jersey, que é a implementação de referência do JavaEE. Crie uma aplicação web chamada CinemaJSF, que utiliza o framework do JavaServer Faces para criação das páginas WEB. Vamos alterar uma página inicial index.xhtml, para que ela utilize um managed bean para consumir esse web serviço, a página ficará assim: <?xml version='1.0' encoding='UTF‐8' ?> <!DOCTYPE html PUBLIC "‐//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1‐transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" Pesquisar o site

Upload: jhcrique

Post on 17-Sep-2015

284 views

Category:

Documents


5 download

DESCRIPTION

Chamando Um Web Service REST Com JSF

TRANSCRIPT

  • 19/02/2015 ChamandoumwebserviceRESTcomJSFpublicclassUniversidadeJava{

    http://www.universidadejava.com.br/docs/chamandoumwebservicerestcomjsf 1/7

    public classUniversidadeJava{Pginainicial Apresentaes Materiais Certificaes Conheaosprofessores

    docs>

    Chamando um web service REST comJSFpostadoem6dedezde201209:07porRafaelSakurai

    Oservioweb(webservice)umaformadeintegraobemutilizadaatualmentepararealizaraintegraoentreaplicaes.OWebServiceRESTumadasformasdecriarumservioweb,queutilizadamuitooprotocoloHTTPpararealizaressaintegraoentreasaplicaes.

    OWebServiceRESTpodedisponibilizaratravsdoprotocoloHTTPmtodosparamanipulaodeinformaes,porexemplo:aofazerumarequisioHTTPatravsdomtodoGETparaaURLhttp://localhost:8080/CinemaREST/servico/filmespossvelobterumrecurso,quenessecasoumalistadefilmes.SechamaressaURLatravsdeumnavegadorpodemosverificaroretornodesseWebServiceREST.

    ParaconsumirumWebServiceREST,existemdiversasimplementaespossveis,umadelasatravsdaAPIJersey,queaimplementaoderefernciadoJavaEE.

    CrieumaaplicaowebchamadaCinemaJSF,queutilizaoframeworkdoJavaServerFacesparacriaodaspginasWEB.

    Vamosalterarumapginainicialindex.xhtml,paraqueelautilizeummanagedbeanparaconsumiressewebservio,apginaficarassim:

  • 19/02/2015 ChamandoumwebserviceRESTcomJSFpublicclassUniversidadeJava{

    http://www.universidadejava.com.br/docs/chamandoumwebservicerestcomjsf 2/7

    xmlns:h="http://java.sun.com/jsf/html">MeuCinemaFilmesemcartaz

    OoutputTextirchamaromtodogetFilmesEmCartaz()damanagedbeanCinemaMB,quechamaowebserviceRESTquetraztodososfilmesemcartaz.

    ParautilizaraAPIdoJerseydentrodaaplicao,cliquecomobotodireitodomouseemcimadonomedoprojetoeescolhaoitemPropriedades.NateladepropriedadesacesseacategoriaBibliotecaseadicioneabibliotecaJersey1.8(JAXRSRI)atravsdomenuAdicionarBiblioteca.

    VamoscriaramanagedbeanCinemaMBcomaimplementaodomtodo:

    packagebr.metodista.managedbean;importcom.sun.jersey.api.client.Client;importcom.sun.jersey.api.client.WebResource;importjavax.faces.bean.ManagedBean;@ManagedBeanpublicclassCinemaMB{

  • 19/02/2015 ChamandoumwebserviceRESTcomJSFpublicclassUniversidadeJava{

    http://www.universidadejava.com.br/docs/chamandoumwebservicerestcomjsf 3/7

    publicStringgetFilmesEmCartaz(){Clientc=Client.create();WebResourcewr=c.resource("http://localhost:8080/CinemaREST/servico/filmes");returnwr.get(String.class);}}

    ComaclasseClientpossvelobterumresourceweb(recursoweb)atravsda

    URLdowebserviceREST,ecomesserecursopossvelchamarosmtodosqueowebserviceRESTsuporta,como:get,post,put,delete,etc.

    Aochamaromtodowr.get(String.class),estamosesperandoqueachamadaparaesseserviodevolvaumaString,nesseexemploessaStringvemnoformatoJSON(JavaScriptObjectNotation),maspoderiaserumaStringsimples,umformatoXML,etc.AoexecutaraaplicaoCinemaJSFteremosaseguintetela:

    ParaconverteresseJSONemobjetoJava,podemosusarumaAPIsimplesdoGooglechamadagson(https://code.google.com/p/googlegson)querealizaessaconversodemaneirafcil.PrimeirovamoscriaraclasseFilmequeirrepresentarcadafilmedalista:

    packagebr.metodista.modelo;

    publicclassFilme{privateLongid;privateStringfilme;privateStringsinopse;privateStringgenero;

  • 19/02/2015 ChamandoumwebserviceRESTcomJSFpublicclassUniversidadeJava{

    http://www.universidadejava.com.br/docs/chamandoumwebservicerestcomjsf 4/7

    privateIntegerduracao;privateStringtrailer;

    publicFilme(){}

    publicLonggetId(){returnid;}publicvoidsetId(Longid){this.id=id;}publicStringgetFilme(){returnfilme;}publicvoidsetFilme(Stringfilme){this.filme=filme;}publicStringgetSinopse(){returnsinopse;}publicvoidsetSinopse(Stringsinopse){this.sinopse=sinopse;}publicStringgetGenero(){returngenero;}publicvoidsetGenero(Stringgenero){this.genero=genero;}publicIntegergetDuracao(){returnduracao;}publicvoidsetDuracao(Integerduracao){this.duracao=duracao;}publicStringgetTrailer(){returntrailer;}publicvoidsetTrailer(Stringtrailer){this.trailer=trailer;}}

    Adicioneabibiotecadogsonnoprojeto,cliquecomobotodireitodomouseemcimadonomedoprojetoeescolhaoitemPropriedades.NateladepropriedadesacesseacategoriaBibliotecaseadicioneabibliotecagson2.2.2.jaratravsdomenuAdicionarJAR/Pasta.

  • 19/02/2015 ChamandoumwebserviceRESTcomJSFpublicclassUniversidadeJava{

    http://www.universidadejava.com.br/docs/chamandoumwebservicerestcomjsf 5/7

    VamosalteraroCinemaMBparautilizaraAPIdogsoneconverteroJSONemumalistadefilmes:

    packagebr.metodista.managedbean;

    importbr.metodista.modelo.Filme;importcom.google.gson.Gson;importcom.google.gson.reflect.TypeToken;importcom.sun.jersey.api.client.Client;importcom.sun.jersey.api.client.WebResource;importjava.util.List;importjavax.faces.bean.ManagedBean;

    @ManagedBeanpublicclassCinemaMB{publicListgetFilmesEmCartaz(){Clientc=Client.create();WebResourcewr=c.resource("http://localhost:8080/CinemaREST/servico/filmes");Stringjson=wr.get(String.class);Gsongson=newGson();returngson.fromJson(json,newTypeToken(){}.getType());}}

    Agoravamosmudarapginaindex.xhtmlparamostrarumatabelacomosfilmes:

  • 19/02/2015 ChamandoumwebserviceRESTcomJSFpublicclassUniversidadeJava{

    http://www.universidadejava.com.br/docs/chamandoumwebservicerestcomjsf 6/7

    MeuCinemaFilmesemcartaz

    Atelaficarcomaseguinteaparncia:

  • 19/02/2015 ChamandoumwebserviceRESTcomJSFpublicclassUniversidadeJava{

    http://www.universidadejava.com.br/docs/chamandoumwebservicerestcomjsf 7/7

    Fazerlogin | Denunciarabuso | Imprimirpgina | Tecnologia GoogleSites

    Comentrios

    Vocnotempermissoparaadicionarcomentrios.