Archivi tag: spring

SPRING WS – TUTORIAL 2 – CONOSCERE IL WSDL

Per generarare il wsdl a partire dal file xsd occorre utilizzare una classe fornita da spring ws che in automatico nel rispetto di determinate convenzioni genera il nostro wsdl.

La classe da utilizzare è la DefaultWsdl11Definition

  • L’attributo id determina il nome del wsdl. In questo caso esporrà il wsdl libreria.wsdl
  • La proprietà schema indica il file da utilizzare per la generazione del file wsdl
  • le proprietà portTypeName e locationUri indicano i parametri da inserire all’interno del wsdl per la richiesta dei servizi.
La nostra classe genera analizza il file xsd alla ricerca di elementi con il suffisso Request e Response e per ogni elemento individua gli elementi tipici della specifica SOA.
Nel nostro caso il wsdl generato ha la seguente forma

 

  • La sezione type presenta i tipi e gli elementi definiti nell’xsd.
  • La sezione messages presenta tutti i messaggi gestibili dal nostro soa server. La nostra classe ha individuato tanti messaggi quanti sono gli elementi definiti nell’xsd con suffisso Request e Response
  • La sezione operation presenta i servizi esposti dal server specificando per ogni servizio il messaggio di ingresso e di uscita.
  • infine la sezione servizi indica a quale url sono disponibili i nostri servizi.

Nel nostro caso la classe ha individuato un solo servizio RicercaLibro che riceve in ingresso la RicercaLibroRequest e restituisce in uscita la RicercaLibroResponse. Tale servizio è disponibile all’url http://localhost:10000/libreria/webservice.

Per poter avere un riscontro agevole di quanto fatto possiamo caricare il nostro wsdl tramite il tool soap ui, ottimo strumento per il testing dei servizi SOA.

Nel prossimo articolo vedremo come mettere in piedi il nostro server con l’aiuto di spring-ws.

SPRING WS – TUTORIAL 1 – PRIMA IL CONTRATTO

Vediamo come usare Spring Ws per la realizzazione di un web service.

Spring Ws parte dalla definizione del contratto e solo successivamente affronta il problema dell’implementazione. Il vantaggio di questo approccio è quello di permettere allo sviluppatore di concentrarsi sul design del servizio e solo successivamente sulla stesura del codice.

Scopo di questa serie di articoli è la realizzazione di un web service per la ricerca di un libro da un catalogo. La ricerca del libro avviene per titolo o per cognome dell’autore.

Definiamo prima di tutto la struttura dati utilizzata dal web service.

Per semplificazione la struttura dati del libro è di questo tipo:


mentre richiesta e risposta hanno questa struttura


Definite le strutture dati possiamo definire il wsdl, ovvero il file che descrive il web service in modo completo. Usando Spring ws non è necessario farlo a mano, in quanto è disponibile un modulo che a partire dalla struttura dati indicata sopra può generare il file a runtime. Nel prossimo articolo vedremo la struttura del file per ripassare i concetti sul contratto.

SPRING WS – INTRODUZIONE

Spring Web Services è un prodotto della comuntà Spring che permette di creare web services partendo dal contratto. Esso facilita lo sviluppo tramite una gestione più flessibile della creazione dei web services.

Permette di sviluppare ed esporre web services in modo estremamente semplice; la possibilità di godere delle implementazioni di Spring permette agli sviluppatori di concentrarsi sul design dei servizi e riutilizzare le competenze maturate su un modulo basato su spring.

Il motore di Spring Ws consente di disaccoppiare facilmente il contratto dalla sua implementazione, di redirigere le richieste in arrivo verso gli endpoint appropriati in base al contenuto del messaggio, al SOAP header od ad una XPath expression. Inoltre esso consente di integrare le varie librerie per la gestione di file xml in base alle varie esigenze dello sviluppatore.

Supporta la WS-Security e consente di integrare facilmente il modulo Acegi Security, che gestisce la sicurezza dei propri servizi.

I sorgenti di Spring-Ws sono disponibili tramite Maven e pertanto facilmente riusabili nei nostri progetti.

Infine viene rilasciato con licenza Apache, il che permette di poterlo integrare nei nostri progetti salvo indicarlo nei nostri rilasci.