Reti e Sicurezza Informatica Esercitazione...

49
Corso di Laurea in Informatica Prof. Mario Cannataro Ing. Giuseppe Pirrò Reti e Sicurezza Informatica Esercitazione 2

Transcript of Reti e Sicurezza Informatica Esercitazione...

Page 1: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Corso di Laurea in Informatica

Prof. Mario CannataroIng. Giuseppe Pirrò

Reti e Sicurezza InformaticaEsercitazione 2

Page 2: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

I Web Service - Definizione (W3C) -

“A Web Service is a software system identifiedby a URI, whose public interfaces and

bindings are defined and described usingXML. Its definition can be discovered by othersoftware systems. These systems may theninteract with the Web Service in a manner

prescribed by its definition, using XML-basedmessages conveyed by Internet protocols”

Page 3: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

I Web Service - Scenario di utilizzo -

InteroperabilitàBusiness-to-customer (B2C)Business-to-business (B2B)Applicazioni Inter-aziendaliService Oriented Computing

Page 4: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

La Service Oriented Architecture

Una SOA è essenzialmente una collezione di servizi che comunicano gli uni con gli altri.La comunicazione può riguardare il semplice scambio di dati o anche attività di coordinamento di attività che coinvolgono piùservizi.Affinché questa comunicazione possa avvenire è necessario un “mezzo” di comunicazione.

Page 5: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

La SOA

Page 6: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Descrizione di un Web ServiceWeb Services Description Language descrive:

1. I servizi offerti da un Web Service2. I dati di input3. I dati di output4. Le modalità di invocazione del servizio

Page 7: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Descrizione di un Web Service

E composta da due parti:1. Abstract view: descrizione delle operazioni

permesse dal servizio, raggruppate come portType.

2. Concrete view: Informazioni sull’implementazione delle operation.

Page 8: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

I Web Service - Requisiti Tecnologici -

Apache Tomcat (o qualsiasi altro server web)- Rende “sempre” disponibile il servizio Librerie per lo sviluppo di Web Service- Apache AXIS (Java)- gSOAP (C++)

Page 9: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Le librerie AXIS

AXIS è una Web ApplicationImplementa gli standard per i Web ServiceFornisce tool e librerie per lo sviluppo dei Web Service

Page 10: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Le librerie AXIS - Installazione -

Scompattare le librerie scaricatePosizionare la directory axis_*/webappsnella sottodirectory webapps di TomcatIl server Web al riavvio identificheràautomaticamente il nuovo modulo aggiunto

Page 11: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Le librerie AXIS - Verifica Installazione -

Puntare il browser all’URL: http://localhost:8080/axis

Page 12: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Le librerie AXIS - Validazione -Verificare che vengano caricate correttamente tutte le librerie cliccando sul link Validation presente nella home page di Axis. Verrà mostrata una pagina simile a quella seguente, nella quale non dovranno esserci messaggi di errori o di warning

Page 13: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Le librerie AXIS – Verifica WSDL -Cliccare su una delle voci WSDL dei servizi già disponibili per verificare la generazione del WSDL relativo al servizio

Page 14: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Le librerie AXIS - Lista servizi attivati -

Per conoscere la lista dei servizi attivi basta cliccare sul link list nella home page di AXIS.

Page 15: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

REALIZZAZIONE DI WEB SERVICES

Page 16: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Scrittura di web Services

Un Web Service si realizza ( ad esempio in Java) attraverso la scrittura di una classe che implementi gli obbiettivi del servizio.Una volta scritta la classe si procede alla messa in opera del servizio.- Deploy del servizio

Page 17: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Metodi di Deploy di un Web Service

Esistono due modi per effettuare il deploy del servizio:

1. Metodo diretto2. Metodo semplificato

Page 18: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Deploy di un Web Service -Metodo diretto-

Si posiziona la classe che implementa il servizio in:<TOMCAT_HOME>\webapps\axis\WEB-INF\classes\miopackage\myservice.class

Richiede la stesura di un file di deployment del tipo myservice.wsdd.In questo modo si istruisce l’engine di Axis affinchéin corrispondenza di una determinata richiesta (sottoforma di messaggio SOAP), istanzi la classe e ne richiami il relativo metodo.

Page 19: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Wsdd: Web Service Deployment DescriptorStruttura di un file wsdd (deploy.wsdd):

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

<service name="urn:myserviceWS" provider="java:RPC"> <parameter name="className" value="miopackage.myserviceWS"/> <parameter name="allowedMethods" value=“mymethod"/> <parameter name="scope" value="Request"/> </service>

</deployment>

Page 20: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Deploy di un Web Service -Metodo diretto-

Contenuto di un file wsdd:Name: indica il nome del servizio web.Provider : java:RPC” indica ad Axis di pubblicare il servizio secondo un meccanismo RPC.Parameter className: indica il nome della classe che implementa il servizio.Parameter allowedMethods: metodi resi disponibili per essere invocati (* indica tutti i metodi della classe).Parameter scope: definisce il ciclo di vita della classe che in questo caso viene istanziata, utilizzata e distrutta ad ogni richiesta, altri valori sono Application e Session.

Page 21: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

WSDD - Parametro scope -<parameter name=“scope” value=“...”>

1. Request: una nuova istanza del servizio per ogni richiesta (default)

2. Application: singolo oggetto condiviso da tutte le richieste

3. Session: un oggetto per ogni sessione

Page 22: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Tipi di chiamate-

RPC-based:chiamate a metodo remote realizzate attraverso un protocollo basato su XML.Document-based:scambio di oggetti attraverso documenti XML.Wrapped:come document-based ma gli oggetti sono rappresentati attraverso i loro attributi costituenti invece che attraverso strutture complesse.Message-based:scambio di arbitrari documenti XML.

Page 23: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Chiamate di tipo RPCIn una interazione di tipo RPC, il web service è visto come una singola applicazione o come un unico componente con i dati incapsulati

Page 24: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Chiamate di tipo document-basedIn a document-based interaction, the service consumer interacts withthe service using documents that are meant to be processed ascomplete entities. These documents typically take the form of XML, which is defined by a commonly agreed upon schema between the service provider and service consumer. It is also possible that the document exchanged in such an interaction could be in a format other than XML (such as encrypted files); however, the value of agreeing on a XML schema is to facilitate interoperability. In otherwords, the document represents a complete unit of information and may be completely self-describing.

Page 25: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Web Service - Interoperabilità -

In teoria, diverse implementazioni SOAP possono interagire.In pratica, sono necessari degli accorgimenti legati alla corrispondenza tra i tipi WSDL e i tipi specifici del linguaggio adottato.

Page 26: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Corrispondenza fra tipi

Page 27: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

AXIS - Tipi di dato -

Non si possono inviare oggetti per i quali non esista un “AXIS Serializer” registrato.AXIS fornisce il Bean Serializer per la serializzazione dei JavaBean.Per poter trasmettere oggetti arbitrari dobbiamo costruire e registrare altri SerializerSOAP non supporta il passaggio di riferimenti remoti.

Page 28: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

AXIS - Bean serializer -Le classi che rispettano la specifica JavaBean possono essere serializzate automaticamente (metodi get/set per tutti i parametri)Esempio:

public class Order{private String customerName;private String shippingAddress;public String getCustomerName() { return customerName; }public void setCustomerName(String name) { customerName =

name; }public String getShippingAddress() { return shippingAddress; }public void setShippingAddress(String address) { shippingAddress =

address;}}

Page 29: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

AXIS - Bean serializer -

Bisogna specificare il mapping tra un XML QName e il JavaBean perché AXIS riesca a serializzarlo.Il mapping si specifica con li seguente elemento del WSDD:

<beanMapping qname=“ns:local”xmlns:ns=“someNamespace”

languageSpecificType=“java:my.java.thingy” />L’associazione realizzata è la seguentemy.java.thingy <-> someNamespace:local

Page 30: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Custom serializer

Bisogna implementare un Serializer ed un Deserializer.Devono essere indicati nel WSDL attraverso l’elemento <typeMapping...>.

Page 31: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Deploy di un Web Service -Metodo diretto-

Per effettuare il deploy:1. Aggiungere al classpath le seguenti classi:

• axis.jar• jaxrpc.jar• saaj.jar• commons-logging.jar• commons-discovery.jar• log4j-1.2.8.jar

2. Lanciare il comando: java org.apache.axis.client.AdminClient deploy.wsdd

La classe AdminClient eseguirà il deployment leggendo i metadati dal file deploy.wsdd indicato comunicandoli automaticamente all’Axis engine.

Page 32: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Deploy di un Web Service - Il comando AdminClient

Di seguito è mostrata la sintassi da usare per pubblicare il servizio da riga di comando. Da notare che si è assunto che le variabili di sistema, PATH e CLASSPATH, siano settate correttamente.

Page 33: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Deploy di un Web Service -Metodo diretto-

Controllare la presenza del nuovo servizio:http://localhost:8080/axis/servlet/AxisServlet

Page 34: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Deploy di un Web Service -Metodo alternativo

Utilizzo dell’estensione JWS (Java Web Service)La classe java che implementa il servizio vieneautomaticamente tradotta da AXIS chepubblicherà il WSDL corrispondente.I servizi deployati in questo modo non vengonovisualizzati nella lista dei servizi all’URLhttp://localhost:8080/axis/servlet/AxisServlet

Per controllarne l’esistenza si deve puntare ilbrowser all’indirizzo del WSDL

Es. http://localhost:8084/axis/myserviceWS.jws?WSDL

Page 35: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Deploy di un Web Service -Metodo alternativo

Passi da compiere:1. Si parte dalla classe Java (file .java)2. Si rinomina il file in .jws3. Si posiziona il file in TOMCAT_HOME/webapps/axis

4. Si riavvia Tomcat affinchè effettui tutte le operazioni di deploy

Page 36: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

ESEMPI PRATICI

Page 37: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Esempio 1 - Creazione del servizio -

- Copiamo il file in:<TOMCAT_HOME>\webapps\axis\WEBINF\classes\miopackage\SalutoWS.class

- Prepariamo il file per il deployment - Eseguire il comando AdminClient per pubblicare il servizio- Cotrollare l’URL del nuovo servizio

//File Esempio1.javapackage miopackage;/* Classe che implementa il servizio. */public class SalutoWS{

/* Metodo che implementa il servizio.* Questo servizio restituisce una stringa di

saluto.**/

public String saluto(String nome){ return “Ciao “+ nome + ” ! ”} ;

}

Page 38: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Ora che abbiamo creato il Web Service non ci rimane che creare un Client che lo utilizzi.Il tutto è molto semplice perchè si riduce a

richiamare il metodo passando due parametri e ricevere la risposta, il tutto utilizzando le classi che ci offre Axis.

Esempio 1 - Creazione di un Client -

Page 39: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Esempio 1 - Creazione di un Client -

Il Client si realizza facendo uso dell’interfaccia Call della classe Service che fornisce un’istanza di tale classe.Inoltre è necessario tramite la lettura del WSDL:

1. L’URL del servizio2. Il nome del servizio3. I parametri d’ingresso e di uscita

Page 40: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Esempio 1 - Creazione di un Client -import (vari)public class ClientSalutoWS { public static void main(String[] args) { String messaggio = ""; try { Call call = (Call) new Service().createCall();call.setTargetEndpointAddress(newURL("http://localhost:8080/axis/services/"));call.setOperationName(new QName("urn:SalutoWS", "saluto"));Object rispostaWS = call.invoke(new Object[]{"Giuseppe"});messaggio = "il Web service ha risposto: "+(String) rispostaWS;}catch (MalformedURLException ex) { messaggio = "errore: l'url non è esatta"; }catch (ServiceException ex) { messaggio = "errore: la creazione della chiamata è fallita"; }catch (RemoteException ex) { messaggio = "errore: l'invocazione del WS è fallita"; }finally{ System.out.println(messaggio); } } }

Page 41: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Nomi dei parametriNelle chiamate SOAP i nomi dei parametri sono indicati con arg0, arg1, ...Con le seguenti isruzioni:call.addParamater(<nomePar>, <tipo>, <IN/OUT>)call.setReturnType(<tipo>)è possibile definire nomi e tipi delle variabilisetReturnType è necessario nei casi in cui la risposta SOAP non riporti l’indicazione del tipo ritornatoAd esempio: <result>Hello!</result> invece di<result xsi:type=“xsd:string”>Hello!</result>

Page 42: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Esempio 1 – Messaggio SOAP Request -POST /axis/services/ HTTP/1.0 Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml, application/dime, multipart/related, text/* User-Agent: Axis/1.1 Host: 127.0.0.1 Cache-Control: no-cache Pragma: no-cache SOAPAction: "" Content-Length: 442

<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelopexmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1:saluto soapenv:encodingStyle=http://schemas.xmlsoap.org/soap/encoding/ xmlns:ns1="urn:SalutoWS"> <ns1:arg0 xsi:type="xsd:string">Giuseppe</ns1:arg0> </ns1:saluto> </soapenv:Body> </soapenv:Envelope>

Page 43: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Esempio 1 – Messaggio SOAP Response -HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Connection: close Date: Fri, 21 Nov 2003 16:10:50 GMT Server: Apache Tomcat/4.0.4-b2 (HTTP/1.1 Connector)

<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd=http://www.w3.org/2001/XMLSchema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1:salutoResponse soapenv:encodingStyle=http://schemas.xmlsoap.org/soap/encoding/ xmlns:ns1="urn:SalutoWS"> <ns1:salutoReturn xsi:type="xsd:string">Ciao Giuseppe!</ns1:salutoReturn> </ns1:salutoResponse> </soapenv:Body> </soapenv:Envelope>

Page 44: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Esempio 2 - Trattamento di oggetti -

Page 45: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Esempio 2 - Trattamento di oggetti -

Il tipo impiegato è un semplice Value Object

Page 46: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Trattamento di oggetti

Scrivere un nuovo file .wsdd in cui indicare i tipi non standard utilizzati.Effettuare un nuovo deployment.Nel client occorre “registrare il tipo”con un'apposita istruzione.

Page 47: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Trattamento di oggettiFile wsdd con specifica del nostro VO

Page 48: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Trattamento di oggetti - lato client -Nel client dobbiamo specificare il tipo non standard impiegato nel WS

QName qm=new QName(“ciao2”,”CiaoVO”);Class cls=CiaoVO.class;Call.registerTypeMapping(cls,qn,BeanSerializerFactory.

class,BeanDeserializerFactory.class);

Page 49: Reti e Sicurezza Informatica Esercitazione 2staff.icar.cnr.it/cannataro/unical/RSI/Esercitazioni-06-07... · Deploy di un Web Service -Metodo diretto- Contenuto di un file wsdd: Name:

Esercizio

Realizzare un web service che implementi una semplice calcolatrice (+,-,*,/).Realizzare il WSDD relativo.Realizzare un client che invochi il servizio.