Il Web-Service SDMX dell ISTAT



Documenti analoghi
Il Web-Service SDMX dell ISTAT

Il Web-Service SDMX dell ISTAT

Creare client statici

Corso sul linguaggio Java

Spring WS Sviluppare WebService in Java

JDBC. Paolo Atzeni. 11 marzo Progettazione di applicazioni, una premessa

Guida introduttiva su Eclipse. Ing. Marco Dell'Unto

GEOPORTALE Arpa Piemonte Sistema Informativo Ambientale Geografico

Università di Ferrara Facoltà di Ingegneria. Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B

NetBeans. Dott. Ing. Rossella Rubino A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico

PRACTICAL DEVELOPMENT OF A WEB SERVICE

Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B

Guida IBM Watson IoT

Jamio openwork data source connector for QlikView

MANUALE UTENTE Cloud Base Cloud Professional Cloud Enterprise

CIVILIA NEXT INSERIMENTO PROTOCOLLO

Laboratorio - Creazione di una Partizione in Windows XP

Procedura aggiornamento firmware

Università di Ferrara Facoltà di Ingegneria. Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B

Fondamenti di Informatica T-1

GEOPORTALE Arpa Piemonte

Fondamenti di Informatica T2 Modulo 2

Installazione. Eclipse. Workspace. Primo Avvio. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A. 2008/2009

Avvio alla programmazione CoDeSys serie IEC-line. aggiornamento:

Introduzione a Visual Studio 2005

Introduzione alle JSP

Tutorial 18. Come creare uno stipite personalizzato e inserirlo in libreria

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

Fondamenti di Informatica T-1

ProgettAzione tecnologie in movimento - V anno Unità 4 - Applicazioni per i sistemi mobili

Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query

Swarm e Eclipse. Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico

La tua prima app su Android

Informatica giuridica Informatica del diritto Abilità informatiche (5 CFU)

Cloud GDrive, Dropbox

Il Web come Interfaccia Utente di un Sistema Informativo

Plantview Clone a project

GUIDA ALL ACCESSO DEI SERVIZI WEB MEDIANTE ARCGIS DESKTOP

SEE Electrical Expert V4: FAQ

Utilizzo collegamento remoto

Guida A Vso Divxtodvd

GUIDA OPERATIVA SULLA PIATTAFORMA MOODLE INTEGRATA AL REGISTRO ELETTRONICO MASTERCOM

Introduzione ORGANIZZAZIONE DEL LIBRO. Il libro è composto da 12 capitoli organizzati nelle tre parti seguenti:

L IDE NETBEANS. (slide: A. Baratè) Programmazione per la Musica Adriano Baratè

ArcGIS - ArcView ArcCatalog

Introduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

a cura della Commissione informatica dell Ordine degli Avvocati di Udine I link: esterni ad altri documenti o a pagine web interni al documento

SPAC Automazione 2019

SEGNALAZIONI STUDI DI SETTORE UNICO 2012 GUIDA OPERATIVA VERSIONE 1.0

Fondamenti di Informatica T-1

Configurazione di Eclipse con Liferay 5.2.2/6.0.6/6.1.0 Mac/Linux

Adobe Reader - Acrobat Standard e Professional - versione XI

AEIT Sistema di posta elettronica. Spostare automaticamente le spam in una sottocartella

Android. Creazione e pubblicazione di un applicazione. Corso di programmazione di sistemi mobile 1

Fondamenti di Informatica

La mappa iniziale è utile per accedere alle informazioni generalmente più richieste e per svolgere le attività più correnti.

Manuale d uso della Posta TBS. Oracle Collaboration Suite

GUIDA ALL INSERIMENTO DI TESTI E DOCUMENTI NEL NUOVO SITO DEL COMUNE DI CERVIA Versione 1.0

Riferimenti ad oggetti: Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro. Riferimenti ad oggetti: (Esempio)

Procedura di inserimento automatico

D B M G Il linguaggio HTML

Programmazione Web D B M G. Il linguaggio HTML

4. I moduli in Access 2000/2003

ORSO OSSERVATORIO RIFIUTI SOVRAREGIONALE

AGGIORNAMENTO H 06/10/2016

Esercizio 1: archivio CD e DVD

Installazione e uso software WNS4Life

MDG Enpals Spettacolo MANUALE D USO E INSTALLAZIONE

ADaMSoft. Procedure per l installazione del software in ambiente Microsoft Windows 3/6/2008. Powered by:

TESINA INFORMATICA CARTELLA CLINICA IN ACCESS

Portale AO Papardo GESTIONE CONTENUTI ALBO PRETORIO 23 GIUGNO 2017

MANUALE TECNICO n AGGIORNATO AL CREAZIONE ARCHIVIO 730/2013 DA ACQUISIRE NELL'AMBIENTE 2013

SCRIBUS Guida Generale

Istruzioni per l uso del modulo ALBUM FOTO

Automazione di test. Si presuppone la conoscenza del documento XML.pdf. Un package per i test automatizzati

DOCFINDERWEB SERVICE E CLIENT

TESINA INFORMATICA CARTELLA CLINICA IN ACCESS. Tesina: CARTELLA CLINICA IN ACCESS

INSTALLAZIONE DI JAVA

N.B. 1.3 Impostazioni di sicurezza di Internet Explorer: Active X. Guida all'utilizzo di Web-Rainbow. Consiglio Nazionale delle Ricerche

Folium. Quick guide: gestione documentale e fascicolazione elettronica. Dicembre FOLIUM: Gestione documentale e fascicolazione elettronica

OGGETTO: aggiornamento della procedura Tributi Generali dalla versione alla versione

Manuale d uso MOTEC. Pagina 1 di 15

I Quaderni di LAPSUS n 3 f. CmapTools PASSO A PASSO: aggiungere risorse

BONIFICI MULTIPI E STIPENDI SEPA

Ministero dell Ambiente e della Tutela del Territorio e del Mare GUIDA ALL ACCESSO DEI WEB SERVICE MEDIANTE ARCGIS DESKTOP

INTRODUZIONE A VISUAL STUDIO

LOGVIEWER MANUALE D USO

Fondamenti di informatica T-1 (A K) Esercitazione 6: Eclipse

MANUALE TECNICO N DEL CARICO TELEMATICO. Indice. Premessa Pag. 2. Caricamento di un file Telematico in Server Farm Pag.

Aprire l editor dei template, dal menù File selezionare Nuovo, scegliere Modello grafico e cliccare su Ok

Avviate Specifi dall icona presente sul vostro Desktop.

Calcolare con il computer: Excel. Saro Alioto 1

TUTORIAL IMPORTAZIONE DATI DA FOGLIO EXCELL WINKHOUSE

Transcript:

Il Web-Service SDMX dell ISTAT Esempio d uso in applicazione web Java Versione: 1.0.0 Data: 05/06/2014 Autore: Approvato da:

Modifiche Versione Modifiche Autore Data

Indice dei contenuti 1 Introduzione... 4 2 Creazione dell esempio d uso... 5 2.1 Riferimento al WebService... 5 2.2 Classe per l invio della query SDMX... 7 3 Esecuzione applicazione... 10 05/06/2014 1.0.0 3

1 Introduzione L Istat ha implementato un WebService che sfrutta il protocollo standard SDMX (Statistical Data and Metadata exchange) per la diffusione dei dati del corporate datawarehouse I.Stat in modalità machineto-machine. Il servizio offerto, attraverso i suoi metodi esposti, potrà essere interrogato da applicazioni di qualsiasi genere, attraverso richieste standard http (GET o POST) o attraverso richieste SOAP. Per i dettagli sui metodi esposti dal Web Service e sulle query XML necessarie alla loro interrogazione si rimanda alla Guida all uso del WebService SDMX (http://www.istat.it/it/files/2013/07/step_funz_client_sdmxws1.pdf ) Per approfondimenti si rimanda alla lettura della documentazione SDMX disponibile sul sito http://sdmx.org Di seguito viene proposto un semplice esempio pratico di applicazione che consumi il WebService, utile per capire il funzionamento di base dello strumento. 05/06/2014 1.0.0 4

2 Creazione dell esempio d uso L esempio è stato sviluppato con jdk-7u65-windows-i586, apache-tomcat-7.0.55-windows-x86 utilizzando l ambiente di sviluppo integrato eclipse-jee-kepler-sr2-win32 e prevede una semplice applicazione web, nella quale sarà possibile sottoporre una specifica query SDMX. In risposta l applicazione fornirà l output richiesto in maniera del tutto indipendente dal contesto ed in formato XML (standard SDMX Compact) sfruttando il metodo GetCompactData esposto dal WebService. Per iniziare provvederemo alla creazione di nuovo progetto in Eclipse Kepler dal menu File- New Dynamic Web Project. Per iniziare verrà creata un semplice file JSP in cui inseriremo due TextBox che serviranno rispettivamente per l input della Query XML e per la visualizzazione del relativo output. In fine verrà creato un Button tramite cui effettueremo la chiamata al WebService. Il passo successivo, che spiegheremo in maniera dettagliata, sarà invece quello di aggiungere al nostro progetto Java il riferimento al WebService SDMX dell ISTAT. 2.1 Riferimento al WebService Per aggiungere i riferimenti al web-service ISTAT nel nostro progetto sfrutteremo il tool wsimport presente nella JDK7. Basterà quindi invocare il tool wsimport da console indicando la cartella di destinazione e l url del webservice ISTAT: C:\...jdk1.7\bin>wsimport -keep s C:\ws http://sdmx.istat.it/sdmxws/nsistdv20service.asmx?wsdl Automaticamente verranno create nella cartella indicata (nel nostro esempio C:\ws), tutti i file relativi le classi per poter connettersi al webservice. A questo punto non ci resta che copiare questi file nel nostro progetto, (nel nostro esempio in Java Resources/src ) ed aggiungere le classi nei package appositi. Completata tale operazione potrete vedere in Esplora Soluzioni di Eclipse il nuovo riferimento Web e tutti i file a lui associati (figura 2). In particolare potrete verificare la creazione della classe poxy NSIStdV20ServiceSoap che definisce tutti i suoi metodi con le relative funzioni per la gestione delle richieste. 05/06/2014 1.0.0 5

Figura 1 Esplora soluzioni. Files creati dopo l aggiunta del riferimento al WebService 05/06/2014 1.0.0 6

All interno di NSIStdV20ServiceSoap troveremo quindi anche il metodo getcompactdata che è quello che noi andremo a sfruttare. Di seguito la parte di nostro interesse nel codice creato: public interface NSIStdV20ServiceSoap { @WebMethod(operationName = "GetCompactData", action = "http://ec.europa.eu/eurostat/sri/service/2.0/getcompactdata") @WebResult(name = "GetCompactDataResult", targetnamespace = "http://ec.europa.eu/eurostat/sri/service/2.0") @RequestWrapper(localName = "GetCompactData", targetnamespace = "http://ec.europa.eu/eurostat/sri/service/2.0", classname = "eu.europa.ec.eurostat.sri.service._2.getcompactdata") @ResponseWrapper(localName = "GetCompactDataResponse", targetnamespace = "http://ec.europa.eu/eurostat/sri/service/2.0", classname = "eu.europa.ec.eurostat.sri.service._2.getcompactdataresponse") public AnyResultType getcompactdata( @WebParam(name = "Query", targetnamespace = http://ec.europa.eu/eurostat/sri/service/2.0") eu.europa.ec.eurostat.sri.service._2.getcompactdata.query query); Una volta creata la classe ed il riferimento al servizio non ci rimane che creare una classe che utilizzerà il metodo getcompactdata e che sfrutteremo tramite l evento click del controllo Button 2.2 Classe per l invio della query SDMX Come fatto in precedenza ci posizioniamo nella finestra Esplora Soluzioni e nel menù ottenuto con il tasto destro del mouse selezioniamo la voce Aggiungi e poi Classe che nel nostro esempio chiameremo ClassDati.java. In tale classe andremo a creare il metodo call_server(document sdmxrequest) a cui passeremo la query XML, sotto forma di documento XML; Al suo interno ci limiteremo ad istanziare un oggetto NSIStdV20ServiceSoap tramite il metodo getnsistdv20servicesoap che farà riferimento all endpoint da noi precedentemente indicato.. Fatto ciò sfrutteremo il suo metodo getcompactdata al quale passeremo come parametro l oggetto query, che conterrà la query in formato XML. Di seguito riportiamo il metodo call_server da noi creato in ClassDati 05/06/2014 1.0.0 7

public class ClassDati { NSIStdV20Service _NSIStdV20Service = new NSIStdV20Service(); private AnyResultType sdmxresponse; public String call_server(document sdmxrequest) { NSIStdV20ServiceSoap _NSIStdV20ServiceSoap =_NSIStdV20Service.getNSIStdV20ServiceSoap(); String str = null; try { Query query = new Query(); query.getcontent().add(sdmxrequest.getdocumentelement()); sdmxresponse = _NSIStdV20ServiceSoap.getCompactData(query); str = convertobjecttoxml(sdmxresponse); } } catch (Exception e) { e.printstacktrace(); } return str; Una criticità incontrata riguarda la conversione dal formato AnyResultType ritornato da getcompactdata ad XML. Per far ciò abbiamo utilizzato JAXB (API della Java Enterprise Edition) che fornisce la possibilità di serializzare oggetti Java in XML (marshalling). Di seguito il metodo convertobjecttoxml che ci permette di convertire l oggetto passato in una semplice stringa. public String convertobjecttoxml(anyresulttype ob) { String result = "senza risultato"; try { StringWriter sw = new StringWriter(); JAXBContext jaxbcontext = JAXBContext.newInstance(AnyResultType.class); Marshaller jaxbmarshaller = jaxbcontext.createmarshaller(); jaxbmarshaller.setproperty(marshaller.jaxb_formatted_output, true); jaxbmarshaller.setproperty(marshaller.jaxb_fragment, Boolean.TRUE); JAXBElement<AnyResultType> jaxbelement = new JAXBElement<AnyResultType>(new QName(""), AnyResultType.class, ob); //jaxbmarshaller.marshal(jaxbelement, file); jaxbmarshaller.marshal(jaxbelement, sw); result = sw.tostring(); } catch (JAXBException e) { e.printstacktrace(); } } return result.substring(2, result.length()-3); 05/06/2014 1.0.0 8

A questo punto non ci rimane che sfruttare il mettodo call_server all interno di un Servlet. if(request.getparameter("esegui")!= null) { ClassDati ob = new ClassDati(); String output = null; String input = (String) request.getparameter("inputxml"); if(input!=null) { Document sdmxrequest = ob.parsestringtoxml(input); output = ob.call_server(sdmxrequest); } 05/06/2014 1.0.0 9

3 Esecuzione applicazione La nostra applicazione Web è completa. L ultimo passo su cui vale la pena soffermarsi è la query SDMX che utilizzeremo in input copiandola nella casella di testo. In particolare in essa troveremo il riferimento al metodo GetCompactData e al Dataflow di nostro interesse. <?xml version="1.0" encoding="utf-8"?> <soap:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body> <GetCompactData xmlns="http://ec.europa.eu/eurostat/sri/service/2.0/extended"> <Query> <QueryMessage.. <Query> <query:datawhere> <query:and> <query:dataflow>262d_262_m</query:dataflow> </query:and> </query:datawhere> </Query> </QueryMessage> </Query> </GetCompactData> </soap:body> </soap:envelope> Non ci rimane che provare quanto appena illustrato, eseguendo l applicativo. Inseriremo nella casella in alto la query in nostro possesso, e cliccando sul bottone Esegui otterremo nella casella in basso i dati richiesti. 05/06/2014 1.0.0 10

Figura 3 Esecuzione dell esempio d uso 05/06/2014 1.0.0 11