Click here to load reader

JAX-WS e JAX-RS

  • View
    344

  • Download
    0

Embed Size (px)

Text of JAX-WS e JAX-RS

  • JAX-WS e JAX-RS Come sviluppare servizi SOAP e REST in standard JAX-WS e

    JAX-RS su Liferay

    Antonio Musarra, Software e Architectural Consultant, Key-Biz Srl

  • @antonio_musarra

    Antonio Musarra (@antonio_musarra)Software e Architectural Consultant, Key-Biz Srl

    Web: http://www.key-biz.itBlog: http://www.dontesta.it/blogGitHub: https://github.com/amusarraSlideShare: http://www.slideshare.net/amusarra

    Ho iniziato il mio viaggio nel mondo dell'informatica da un Olivetti M24 dotato di un processore Intel 8086 acquistato da mio padre esclusivamente per il suo lavoro. Non ho mai

    posseduto console di nessun genere (Commodore, Amiga, etc) e inizialmente quell'enorme scatola mi terrorizzava, terrore durato poco; giorno dopo giorno prendevo

    rapidamente il controllo fino a quando.Ho sempre creduto che la condivisione della conoscenza sia un ottimo mezzo per la crescita

    personale e questo stato uno dei principali motivi che mi ha spinto sei anni fa a creare il mio blog personale www.dontesta.it

    Dicono di me che sono bravo nell'analizzare e risolvere rapidamente i problemi complessi. La mia attivit odierna quella di consulente in progetti enterprise che utilizzano tecnologie

    Web Oriented come J2EE, Web Services, ESB, TIBCO.

  • Java standard per Web ServiceJAX-WS (Java API for XML Web Services): un insieme di API Java dedicate allosviluppo di servizi web. L'insieme fa parte della piattaforma Java EE. JAX-WS usaannotazioni per semplificare lo sviluppo e le implementazioni di client. JAX-WS include Java Architecture for XML Binding (JAXB) e SOAP.

    @antonio_musarra

    JAX-RS (Java API for RESTful): un insieme di API Java dedicate allo sviluppo di servizi web in base al pattern architetturale Representational State Transfer (REST). L'insieme fa parte della piattaforma Java EE. JAX-RS usa annotazioni per semplificare lo sviluppo e le implementazioni di client.

  • Liferay Web Service La generazione e linvocazione dei servizi web una parte centrale della esperienza di

    sviluppo Liferay Liferay senza servizi web sarebbe come una macchina di lusso senza ruote. Fortunatamente, Liferay dotato di una serie completa di servizi JSON e SOAP che

    espongo tutte le funzionalit core. Liferay offre anche il framework (Service Builder) per generare servizi locali e remoti

    per le tue applicazioni.

    @antonio_musarra

  • Standard JAX-WS e JAX-RS

    @antonio_musarra

    Dalla versione 7 Liferay supporta i due standard java per i servizi web JAX-WS e JAX-RS

    Limplementazione dei due standard JAX-WS e JAX-RS che Liferay ha deciso di adottare Apache CXF

    Ogni Apps pu pubblicare i servizi web su endpoint Apache CXF definiti sulla propria istanza Liferay

    Gli endpoint Apache CXF sono effettivamente percorsi di contesto (o context path) dei servizi web dove vengono distribuiti e resi accessibili

    E possibile definire sulla propria istanza Liferay uno o pi endpoint Apache CXF Per accedere ai servizi web, un extender deve essere configurato nell'istanza Liferay

  • Liferay SOAP e REST Extender

    @antonio_musarra

    Gli Extenders specificano dove i servizi vengono distribuiti e se hanno handler, filter, provider, etc. Ci sono due tipi di extender:

    SOAP Extenders: Richiesto per la pubblicazione di servizi web JAX-WS in grado di distribuire su uno o pi endpoint CXF con la possibilit di configurare handler, filter, provider, etc.

    REST Extenders: Richiesto per la pubblicazione di servizi web JAX-RS e offre servizi analoghi allextender SOAP.

    JAX WS APIJSR-224

    JAX RS APIJSR-370

    Apache CXF(v. 3.0.3)

    Liferay SOAP Extender

    Liferay REST Extender

    My Liferay 7 App

    Rest Service SOAP Service

  • Liferay SOAP e REST Extender

    @antonio_musarra

    I SOAP e REST Extender sono dei sottosistemi che tracciano i servizi corrispondenti ai filtri OSGi specificati in configurazione e li distribuiscono sotto a specifici endpointCXF

    Tramite i filtri OSGi posso istruire gli extender per registrare non solo i servizi web REST e SOAP ma anche per indicare quali sono i componenti che implementano gli eventuali handler, filter e provider

    Gli endpoint CXF per entrambi i tipi di extender possono essere creati a livello di codice o tramite il Pannello di controllo di Liferay

  • Liferay SOAP e REST Extender

    @antonio_musarra

    Per ogni extenders abbiamo la possibilit di configurare ogni elemento tramite Pannello di controllo Liferay o per via programmatica attraverso lindicazione sul file bnd di quale sia il file di configurazione da adottare per il bundle che contiene i servizi web.

  • Pubblicazione dei servizi JAX-RS

    @antonio_musarra

    possibile pubblicare un servizio web JAX-RS che risiede allinterno di un modulo Liferay cos come si farebbe al di fuori di Liferay. A seguire lesempio di un servizio.

  • Pubblicazione dei servizi JAX-WS

    @antonio_musarra

    possibile pubblicare un servizio web JAX-WS che risiede allinterno di un modulo Liferay cos come si farebbe al di fuori di Liferay. A seguire lesempio di un servizio

  • Costruiamo un progetto desempio

    @antonio_musarra

    Supponiamo che un sistema esterno abbia bisogno di accedere ad un set di dati che risiedono su Liferay attraverso un set di API semplici esposte via JAX-RS e JAX-WS. Come procedere?

    Definire linsieme dinterfacce, quindi il set di API Implementare linsieme dinterfacce come servizi locali Implementare lendpoint JAX-RS per i servizi web REST Implementare lendpoint JAX-WS per i servizi web SOAP Configurare gli Extender SOAP e REST sullinstanza di Liferay

  • Costruiamo un progetto desempio

    @antonio_musarra

    Il progetto Liferay organizzato in moduli distribuiti cos come indicato nella mappa e ogni modulo poi i realt un bundle OSGi che andr installato sullistanza Liferay. La nostra istanza Liferay conterr quindi quattro bundle OSGi.

  • Costruiamo un progetto desempio

    @antonio_musarra

    I due bundle rappresentano i due endpoint JAX-RS e JAX-WS che implementano le API definite dal modulo Custom User Service API. In figura sono evidenti gli endpoint CXF e i filtri OSGi che consento agli extender la registrazione come servizi.

  • Costruiamo un progetto desempio

    @antonio_musarra

    Nel class diagram sono indicate le interfacce e le implementazioni dei servizi locali e remoti esposti come endpoint JAX-WS e JAX-RS

  • Deploy e test dei servizi

    @antonio_musarra

    Dopo il deploy del progetto abbiamo attivi i quattro bundle OSGi, cos come visibile nella figura a seguire (esecuzione del comando lb | grep Custom). Da questo momento i servizi web sono disponibili.

    Gli endpoint dei servizi web (sulla propria istanza Liferay) sono:

    http://localhost:8080/o/rest/ext.persons http://localhost:8080/o/web-services/CustomUserServiceWSEndPoint

  • Deploy e test dei servizi

    @antonio_musarra

    In figura lesempio un esempio di chiamata al servizio web JAX-RS appena installato. La chiamata stata eseguita tramite il comando curl.

    curl -v http://localhost:8080/o/rest/ext.persons/list/tag/it-architect | prettyjson

    In questo caso il servizio restituisce i contatti Liferay che sono taggati con il valore it-architect.

  • Ci vediamo al prossimo Symposium

    @antonio_musarra

    Per, se siete curiosi di scoprire di pi su Liferay 7:

    http://www.dontesta.it/blog http://www.slideshare.net/amusarra https://github.com/amusarra https://dev.liferay.com

    e nel frattempo scaricate lintero progetto da https://github.com/amusarra/liferay-web-services-jaxwsrs

    Antonio [email protected]_musarra

    Grazie!

Search related