Obiettivo di questo esercizio è quello di verificare l'ambiente Eclipse, creando un programma Java che stampi un semplice messaggio utilizzando Eclipse.
Step 1. Aprire Eclipse. Come ambiente di sviluppo utilizzeremo la piattaforma Eclipse.
Step 2. Creare un nuovo progetto Java.
Dalla pagina principale selezionare File -> New -> Project... -> Java -> Java Project
,
dare un nome al progetto e cliccare Finish
Step 3. Creare una classe eseguibile.
Dalla pagina principale selezionare File -> New -> Class
,
dare un nome al package (Eg. it.unipi.di.lai
) ed alla classe
(Eg. HelloWorld
). Selezionare l'opzione di generare il metodo main
e cliccare Finish
Step 4. Eseguire la classe.Implementare la logica al metodo main, ad esempio:
public static void main(String [] args) { System.out.println("Hello World!"); }
ed eseguirla selezionando Run -> Run As... -> Java application
.
Verificare che nel riquadro Console compaia la scritta Hello World!
Scrivere un'applicazione Java che costruisca la richiesta per l'operazione GetCategoryInfo vista nella precedente esercitazione:
<GetCategoryInfoRequest xmlns="urn:ebay:apis:eBLBaseComponents"> <CategoryID>-1</CategoryID> <IncludeSelector>ChildCategories</IncludeSelector> </GetCategoryInfoRequest>
La libreria che gestisce il processamento dell'XML è la JAXP ( Java API for XML Processing ). Come descritto nella documentazione questa API fornisce le classi che implementano la logica di parsing DOM e SAX. In questo esercizio utilizzeremo il parser DOM per costruire il messaggio XML richiesto.
Step 1. Creare un DOM Document.
Seguendo le indicazioni della
documentazione,
utilizzare le classi DocumentBuilderFactory
e DocumentBuilder
per creare un'istanza di Document
vuota
Step 2. Popolare il Document di elementi XML.
Utilizzando i metodi del Document
appena creato,
creare gli elementi XML necessari e appenderli al documento.
Step 3. Trasformare il Document in testo.
Utilizzare le API di trasformazione javax.xml.transformation
per convertire il Dom Document creato in un testo e stamparlo a video.
Suggerimento | |
---|---|
Viene fornita una libreria di utilità contenente alcune
classi che utilizzeremo durante il corso. Una volta
scaricata e aggiunta
al buildpath del progetto ( |
Creare un simulatore del servizio ShoppingService
che esegua la validazione del messaggio in ingresso rispetto allo
Schema XML dello ShoppingService di eBay,
verifica che la richiesta è una GetCategoryInfo
e
stampa l'IdCategoria
contenuto nella richiesta.
Una volta implementato il simulatore, utilizzare il
codice dell'esercizio precedente per invocarlo.
Step 1. Implementare il simulatore del servizio.
Creare la classe
ShoppingServiceSimulator
che implementa il metodo
public void invoke(String request)
che esegue il parsing (rif: lucido 5 della lezione su Parsing XML) e stampa il messaggio ricevuto.
Modificare il programma dell'esercizio precedente
affichè, una volta serializzata la richiesta
GetCategoryInfo
, crei un'istanza
del simulatore e richiami il metodo invoke
.
Eseguire il client e verificare che il servizio stampi il messaggio
ricevuto.
Suggerimento | |
---|---|
Avrete bisogno di convertire stringhe in stream e viceversa. Per farlo è possibile utilizzare il seguente codice:
|
Step 2. Implementare la validazione dei messaggi. Dopo aver affettuato il parsing del messaggio ricevuto, effettuare anche la validazione del documento ottenuto, Seguendo le modalità viste a lezione (rif: lucido 6 della lezione su Parsing XML), eseguire la validazione del documento rispetto allo Schema XML dello ShoppingService di eBay. Eseguire il client e verificare che il messaggio venga validato correttamente, inserendo degli errori nella richiesta come riprova.
Step 3. Completare la logica del simulatore. Aggiungere la seguente logica:
Se la richiesta non è una
GetCategoryInfo
ritornare una stringa di erroreAltrimenti navigare il DOM costruito dal parser, recuperare il valore dell'elemento
IdCategory
e stamparlo a video