Java Web Services. Uso di Eclipse e Apache Axis



Похожие документы
Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia

PRACTICAL DEVELOPMENT OF A WEB SERVICE

sito web sito Internet

Il Paradigma REST per lo sviluppo di applicazioni Web 2.0

MONITORAGGIO UNITARIO PROGETTI 2007/2013 PROTOCOLLO DI COLLOQUI ANALISI ATTIVAZIONE SERVIZIO IGRUE IN SPCOOP. Link.it srl - Analisi Servizio IGRUE 1

Creare un sito Multilingua con Joomla 1.6

Capitolo 4 Pianificazione e Sviluppo di Web Part

Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005

Test di unità con JUnit4

Guida Joomla. di: Alessandro Rossi, Flavio Copes

Application Server per sviluppare applicazioni Java Enterprise

Introduzione all uso di Eclipse

Mac Application Manager 1.3 (SOLO PER TIGER)

Tale attività non è descritta in questa dispensa

Client e Server comunicano tramite il protocollo SOAP.

Integrazione InfiniteCRM - MailUp

Lezione 1 Introduzione

Release Notes di OpenSPCoop2. Release Notes di OpenSPCoop2

Esercitazione di Sistemi Distribuiti: Java RMI

PROGETTO WEB SERVICES DOGANE SERVIZI PER RICEZIONE ED ELABORAZIONE MESSAGGI AMBIENTE REALE

Modulo 3 - Elaborazione Testi 3.5 Stampa unione

Dexma Newsletter System

ESEMPI INTEGRAZIONE PRODOTTI

1 Vincenzo de Stefano SAP e Servizi Web

EXCEL FUNZIONI PRINCIPALI

WEB SERVICES SERVIZI PER RICEZIONE ED ELABORAZIONE MESSAGGI AMBIENTE REALE

Architetture Web: un ripasso

SOAP e Web Services. SOAP: introduzione

Server-side Programming: Java servlets Parte II

IBM Software Demos The Front-End to SOA

Introduzione ai Web Services Alberto Polzonetti

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

Note Tecniche Installazione ed Aggiornamento EasyTelematico 1.3.x

Guida all Installazione del ProxyFatturaPA

Release Notes di OpenSPCoop2. Release Notes di OpenSPCoop2

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

ProgettAzione V anno Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni

Funzioni in C. Violetta Lonati

Il linguaggio HTML - Parte 4

Tecniche di progettazione e sviluppo di applicazioni mobile

Il software ideale per la gestione delle prenotazioni GUIDA UTENTE

Soluzione dell esercizio del 2 Febbraio 2004

ImporterOne Manuale Export Plugin Prestashop

Manuale di Avviamento

SSO Specifiche Funzionali

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Spring WS Sviluppare WebService in Java

Prova di Laboratorio di Programmazione

RMI Remote Method Invocation

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

installazione

Utilizzo dei Cookie Cosa sono i cookie? A cosa servono i cookie? cookie tecnici cookie, detti analitici cookie di profilazione

Elementi di UML (7): Diagrammi dei componenti e di deployment

App-V Dynamic Suite Composition

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA

Manuale per i redattori del sito web OttoInforma

AXIS2 Quick Start Pagina 1 AXIS2 QUICK START

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

Servizio Telematico Paghe

Programmazione Java Avanzata

Gestione Risorse Umane Web. Gestione della foto in stampa unione. Versione V01

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

REGISTRAZIONE ON LINE A CIAO IMPRESA

Funzioni non documentate Openoffice.org. 3 Base mini-howto

ImporterONE Export Plugin Magento

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.

WEB SERVICES SERVIZI PER RICEZIONE ED ELABORAZIONE MESSAGGI AMBIENTE PROVA

Antivirus. Lezione 07. A cosa serve un antivirus

MANUALE UTENTE Fiscali Free

Utilizzo dei Cookie Cosa sono i cookie? A cosa servono i cookie? cookie tecnici cookie, detti analitici cookie di profilazione

The new VirtueMart 2. la rivoluzione del più diffuso e-commerce per Joomla

prof. Mario Dalessandro

Siti interattivi e dinamici. in poche pagine

Programmazione server-side: Java Servlet


DNS-Tunneling. Reference to. Ettore di Giacinto Luca Montunato

Guida operativa. My Legal Corner. BestSoft SOFTWARE IN SANITÀ

Google for Education. Corso introduttivo sull uso delle Google Apps. Langella 1

Installazione, configurazione e utilizzo di IIS

Joomla! 2.5:Utenti e permessi - Il wiki di Joomla.it

FPf per Windows 3.1. Guida all uso

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

GNred Ver1.5 Manuale utenti

Report WordPress plugin di Konora v 0.7

Il Web Server e il protocollo HTTP

Aggiornamenti Sistema Addendum per l utente

Транскрипт:

Java Web Services Uso di Eclipse e Apache Axis 1

Gli strumenti utili per iniziare Axis (Web Service tool) Eclipse (IDE di sviluppo) Tomcat (servlet/jsp container) N.B. Eclipse e Tomcat possono essere sostituiti con strumenti analoghi tra i tanti disponibili. 2

AXIS (Apache extensible Interaction System) Axis è essenzialmente un SOAP Engine che può essere integrato all'interno di Apache Tomcat e permette: la generazione automatica del documento WSDL a partire dai Web Service di cui si è fatto il deployment sul server Web o a partire dalle classi Java (Java2WSDL) la generazione di java proxies lato-client e template lato-server a partire dal WSDL (WSDL2Java) la gestione dei messaggi SOAP scambiati con il servizio 3

Axis setup Prendere la cartella lib e copiarla all'interno della installazione di Eclipse. Prendere la cartella axis dentro webapps e copiarla nell'omonima cartella di Tomcat. 4

Creazione di un nuovo progetto Eclipse Creare un nuovo progetto java Impostare le librerie con i jar di Axis Impostare le librerie mail.jar e activation.jar 5

Il primo Web Service Creiamo una semplice classe Ciao che legge un nome e scrive un messaggio a video 6

Il primo Web Service (cont.) Rendiamo la classe Ciao davvero interoperabile! compiliamo la classe e spostiamola nella cartella webapps/axis/web-inf/classes di Tomcat creiamo un file di deployment eseguiamo l'apposita routine di Axis per attivare il servizio 7

Creazione del file di deployment 8

Creazione del file di deployment (cont.) Sfruttiamo Eclipse! Impostare un run config per il deployment Utilizzare la classe AdminClient di Axis Impostare <nomefile>.wsdd come parametro dell'applicazione 9

Uso di AdminClient di Axis 10

Uso di AdminClient di Axis (cont.) 11

Verifica del deployment Verificare che il servizio compaia nella lista visibile all'indirizzo http://localhost:8080/axis/servlet/axisservlet 12

Axis genera automaticamente il WSDL http://localhost:8080/axis/services/ciao?wsdl 13

Web Service client 14

Mapping tra XML types e Java types Sono definiti all'interno della specifica JAX-RPC 15

Aggiunta di handler Supponiamo di voler contare il numero di volte che un servizio viene invocato e di aver implementato il conteggio nella classe LogHandler 16

17

Undeploy 18

Un Web Service che tratta oggetti composti La classe CiaoVo deve essere definita come un JavaBeans, cioè deve sottostare a determinate convenzioni: la classe deve avere un costruttore senza argomenti le sue proprietà devono essere accessibili tramite get, set, is (usato per i boolean al posto di get) la classe deve essere serializzabile 19

Un Web Service che tratta oggetti composti La classe CiaoVo deve essere definita come un JavaBeans, cioè deve sottostare a determinate convenzioni: la classe deve avere un costruttore senza argomenti le sue proprietà devono essere accessibili tramite get, set, is (usato per i boolean al posto di get) la classe deve essere serializzabile 20

Deployment del Web Service Scrivere un nuovo file.wsdd in cui indicare i tipi non standard utilizzati Effettuare un nuovo deployment creando un nuovo Run config Nel client occorre registrare il tipo con un'apposita istruzione 21

Deployment del Web Service (cont.) 22

Modifiche del client Nel Client deve essere specificato il tipo non standard impegato dal Web Service 23

Modifiche del client Nel Client deve essere specificato il tipo non standard impegato dal Web Service 24

Definire serializer/deserializer personalizzati L'elemento <beanmapping> equivale ad un <typemapping> dove: 1. serializer = org.apache.axis.encoding.ser.beanserializerfactory e 2. deserializer = org.apache.axis.encoding.ser.beandeserializerfactory 25

Uso di WSDL e Axis Axis permette di generare, partendo da un WSDL, le classi java necessarie per la gestione del corrispondente Web Service client-side binding, per generare le classi della parte client server-side binding, per generare le classi della parte server si usa la classe org.apache.axis.wsdl.wsdl2java 26

Client-side binding 27

Client-side binding (cont.) Per ogni entry del tag <types> del WSDL viene creata una corrispondente classe Java Per ogni porttype del WSDL, viene creata un'interfaccia corrispondente, con lo stesso nome della porttype 28

Client-side binding (cont.) Per ogni binding del WSDL, viene creata una classe stub che implementa l'interfaccia corrispondente alla porttype Ogni classe stub contiene il codice Java per l'invocazione del Web service, tramite l'uso delle classi Axis Service e Call Ogni classe stub funziona da proxy per l'invocazione del Web service, trattandolo come un oggetto locale e nascondendo all'utente i dettagli di invocazione del servizio (come endpoints, namespaces e così via) 29

Client-side binding (cont.) Per ogni binding del WSDL, viene creata una classe stub che implementa l'interfaccia corrispondente alla porttype Ogni classe stub contiene il codice Java per l'invocazione del Web service, tramite l'uso delle classi Axis Service e Call Ogni classe stub funziona da proxy per l'invocazione del Web service, trattandolo come un oggetto locale e nascondendo all'utente i dettagli di invocazione del servizio (come endpoints, namespaces e così via) 30

Client-side binding (cont.) Normalmente, un programma client non istanzia uno stub direttamente, ma lo fa attraverso un service locator, che presenta un metodo get che restituisce lo stub Per ogni tag <service> nel WSDL viene generata un'interfaccia per il service locator e la corrispondente implementazione 31

Client-side binding (cont.) Normalmente, un programma client non istanzia uno stub direttamente, ma lo fa attraverso un service locator, che presenta un metodo get che restituisce lo stub Per ogni tag <service> nel WSDL viene generata un'interfaccia per il service locator e la corrispondente implementazione 32

Server-side binding 33

Server-side binding (cont.) Vengono generate le stesse classi della parte client-side, con in più una classe che implementa i metodi del Web Service e i file deploy.wsdd e undeploy.wsdd 34

Uso del codice auto-generato Completare la classe nomeserviziosoapbindingimpl con il codice del servizio Compilare tutte le classi e caricarle su Tomcat Effettuare il deployment con i file generati automaticamente Costruire il client 35

Uso del codice auto-generato Completare la classe nomeserviziosoapbindingimpl con il codice del servizio Compilare tutte le classi e caricarle su Tomcat Effettuare il deployment con i file generati automaticamente Costruire il client 36

Link utili Ulteriori dettagli sull'uso di Axis http://ws.apache.org/axis/java/user-guide.html Homepage di Axis http://ws.apache.org/axis/ Sito in cui trovare plugin per Eclipse sui WS: http://www.eclipse-plugins.info/eclipse/index.jsp Pratico ed Utile Plugin per Eclipse che usa axis: http://lavadora.sourceforge.net/ Sito che raccoglie un dettagliato insieme di WS: http://www.xmethods.com/ 37