Software
Formazione
Links & dritte
 
Sistemi
Elettronica
Matematica
Tai Ji Quan
Giada Adriani
 
Tesi
Appunti
Recensioni
 
Pillole
Racconti
Romanzi
Ospiti
 
Giochi
Eventi
Work-e
Ma.Ste.R.
 
Links
Cerca
Chi sono
Contatti
Mappa del sito
Arrows down Arrows up
  Bandiera inglese Bandiera italiana

Template per Java Web Services

Template

Il "Template web service" è un web service realizzato in Java a scopo didattico, ma può essere usato anche come punto di partenza per sviluppare un web service vero e proprio. Trattandosi di un template in teoria dovrebbe essere possibile sviluppare qualsiasi web service modificando e/o aggiungendo un numero ristretto di classi Java, mantenendo inalterata l'architettura generale del servizio.
Il web service è stato sviluppato usando le seguenti tecnologie:

  • Axis2 versione 1.5.6
  • Apache Tomcat versione 7.0.39
  • Eclipse Juno Service Release 2
  • Java SDK versione 1.6.0_43

Il Template web service è già pronto per gestire la connessione al database Oracle, PostegreSQL e MySQL e include tutti i drivers necessari. Per collegare il web service ad un altro database è necessario:

1) Modificare la classe adriani.jws.template.db.Database
2) Includere i drivers JDBC appropriati all'interno della directory lib nell'ambiente di deploy
3) Specificare le opportune stringhe di connessione al database all'interno del file configuration.properties

Il file ZIP scaricabile contiene:

  • Files sorgenti Java per compilare il servizio
  • File build.xml di Ant per il processo di build
  • Il web service in formato AAR pronto per il deploy
  • Manuale di utilizzo in formato PDF
  • Documento di design dell'architettura in formato PDF
  • Le librerie (files jar) necessarie per utilizzare Oracle, PostegreSQL, MySQL e Log4j
  • Scripts BATCH/Shell utili per testare il web service a linea di comando
  • Scripts SQL per creare e popolare un database di test su Oracle, PostegreSQL e MySQL

Si raccomanda di leggere il documento di design dell'architettura (service_design_ita.pdf) prima di provare a modificare i sorgenti Java e/o sviluppare un nuovo web service a partire dal Template.
In particolare è di cruciale importanza capire come personalizzare i wrappers presenti nel package adriani.jws.template.wrappers che modellano la struttura degli elementi ADBBean prodotti dal plugin WTP di Eclipse o il tool wsdl2java. Il compito di tali wrappers è quello di convertire le request SOAP negli oggetti Java utilizzati dalla business logic e, viceversa, mappare i risultati della business logic nella response SOAP. Mediante tale meccanismo viene garantito il loose coupling tra la logica del servizio e la struttura descritta nel WSDL associato al web service.

La versione attuale del Template web service offre le seguenti funzionalità:

  • Due metodi SOAP "dummy" come esempio di implementazione ed utilizzo del servizio
  • File build di Ant con switch per tre ambienti diversi (sviluppo, test, produzione)
  • Esecuzione in modalità Soapplication a linea di comando (SimpleClient)
  • Gestione del pool di connessioni al database (JDBCConnectionPool)
  • Possibilità di utilizzare un mocked pool per il test o debug (MockConnectionPool)
  • Classi wrappers per garantire il loose coupling (adriani.jws.template.wrappers)
  • Possibilità di configurare il web service a run-time mediante messaggi SOAP (remote manager)
  • Due sistemi di log alternativi e complementari (Log4j e SystemLogger)
  • Internazionalizzazione dei messaggi d'errore in base al Locale della macchina (ErrorMessage)
  • Raccolta e analisi di dati statistici per la valutazione delle performances (GeneralAnalyzer)
  • Possibilità di misurare i tempi di esecuzione delle singole query (service.benchmark)
  • Gestione dell'header SOAP per intercettare eventuali dati di autenticazione


Documentazione

Introduzione ai concetti fondamentali dell'XML e XPath Documento PDF
Introduzione alle regole degli XML Schema Definition Documento PDF
Gli elementi fondamentali dei documenti WSDL per i web services Documento PDF
Il protocollo SOAP nell'ambito dei web services realizzati in Java Documento PDF
Sviluppare web services in Java con Axis2 su Tomcat Documento PDF
Verificare l'interoperabilità di un servizio secondo il WSI Documento PDF
Alcuni approfondimenti sulla gestione di Axis2 nell'ambiente J2EE Documento PDF