9. Appendici
Di seguito illustriamo come installare gli strumenti utilizzati in questo documento su computer con sistema operativo Windows 7 o 8.
9.1. Installazione di JDK
All'indirizzo URL è disponibile il [http://www.oracle.com/technetwork/java/javase/downloads/index.html] (ottobre 2014), mentre il JDK è la versione più recente. D'ora in poi chiameremo <jdk-install> la cartella di installazione di JDK.
![]() |
9.2. Installazione di Maven
Maven è uno strumento per la gestione delle dipendenze di un progetto Java e non solo. È disponibile su URL e [http://maven.apache.org/download.cgi].
![]() |
Scaricare e decomprimere l’archivio. Chiameremo <maven-install> la cartella di installazione di Maven.
![]() |
- In [1], il file [conf / settings.xml] configura Maven;
In esso si trovano le seguenti righe:
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
Il valore predefinito della riga 4, se come nel mio caso il vostro {user.home} presenta uno spazio nel percorso (ad esempio [C:\Users\Serge Tahé]), può causare problemi ad alcuni software, tra cui IntellijIDEA. In tal caso, scriveremo qualcosa del tipo:
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>D:\Programs\devjava\maven\.m2\repository</localRepository>
e, alla riga 7, si eviterà un percorso che contenga spazi.
9.3. Installazione di STS (Spring Tool Suite)
Installeremo SpringSource Tool Suite [http://www.springsource.com/developer/sts], un’istanza di Eclipse preconfigurata con numerosi plugin relativi al framework Spring e con una configurazione Maven preinstallata.
![]() |
- visitare il sito della SpringSource Tool Suite (STS) [1], per scaricare la versione attuale di STS [2A] [2B],
![]() |
![]() |
- il file scaricato è un programma di installazione che crea la struttura di file [3A] [3B]. In [4], si avvia l'eseguibile,
- in [5], la finestra di lavoro di IDE dopo aver chiuso la finestra di benvenuto. In [6], viene visualizzata la finestra dei server delle applicazioni,
![]() |
- in [7], la finestra dei server. È registrato un server. Si tratta di un server VMware compatibile con Tomcat.
È necessario indicare a STS la cartella di installazione di Maven:
![]() |
- in [1-2], si configura STS;
- in [3-4] si aggiunge una nuova installazione di Maven;
![]() |
- in [5] si indica la cartella di installazione di Maven;
- in [6], si chiude la procedura guidata;
- in [7], si imposta la nuova installazione di Maven come installazione predefinita;
![]() |
- in [8-9], si verifica il repository locale di Maven, la cartella in cui verranno salvate le dipendenze scaricate e in cui STS salverà gli artefatti che verranno compilati;
9.4. Installazione di un server Tomcat
I server Tomcat sono disponibili all'indirizzo URL [http://tomcat.apache.org/download-80.cgi]. Gli esempi riportati in questo documento sono stati testati con la versione 8.0.9 disponibile all'indirizzo URL [http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.9/bin/].
![]() |
Scaricare il file zip adatto alla propria postazione di lavoro. Una volta decompresso, si ottiene la struttura di directory. A questo punto, è possibile aggiungere questo server ai server di:
![]() |
- in [1-3], si aggiunge un nuovo server in STS; (per visualizzare la finestra dei server, selezionare Window / Show view / Other / Server / Servers);
![]() |
- in [5], selezionare un server Tomcat 8;
- in [6], assegnare un nome a questo server;
- in [8], specificare la cartella di installazione di Tomcat scaricata in precedenza;
- in [9], il nuovo server;
![]() |
- in [11-12], avviare il server Tomcat 8;
- in [13-14], la sua finestra dei log;
- in [15], per arrestarlo;
9.5. Installazione di [WampServer]
[WampServer] è , una suite di software per lo sviluppo in PHP / MySQL / Apache su un computer Windows. Lo useremo esclusivamente per SGBD e MySQL.
![]() |
- sul sito di [WampServer] [1], scegliere la versione adatta [2],
- il file eseguibile scaricato è un programma di installazione. Durante l'installazione vengono richieste diverse informazioni. Queste non riguardano MySQL. È quindi possibile ignorarle. Al termine dell’installazione viene visualizzata la finestra [3]. Si avvia [WampServer],
![]() |
- in [4]; l’icona di [WampServer] viene installata nella barra delle applicazioni in basso a destra dello schermo [4],
- quando si fa clic su di essa, viene visualizzato il menu [5]. Esso consente di gestire il server Apache e il SGBD MySQL. Per gestirlo, si utilizza l’opzione [PhpPmyAdmin];
- si ottiene quindi la finestra riportata di seguito,

In questa sede forniremo pochi dettagli sull’utilizzo di [PhpMyAdmin]. Il documento fornisce le informazioni necessarie quando richiesto.
9.6. Installazione del plugin Chrome [Advanced Rest Client]
In questo documento si utilizza il browser Chrome di Google (http://www.google.fr/intl/fr/chrome/browser/). A questo si aggiungerà l’estensione [Advanced Rest Client]. Si procederà come segue:
- visitare il sito di [Google Web store] (https://chrome.google.com/webstore) con il browser Chrome;
- cercare l’applicazione [Advanced Rest Client]:
![]() |
- l’applicazione sarà quindi disponibile per il download:
![]() |
- per scaricarla, è necessario creare un account Google. [Google Web Store] richiede quindi la conferma [1]:
![]() |
- In [2], l’estensione aggiunta è disponibile nell’opzione [Applications] [3]. Questa opzione viene visualizzata su ogni nuova scheda che create (CTRL-T) nel browser.
9.7. Gestione di jSON in Java
In modo trasparente per lo sviluppatore, il framework [Spring MVC] utilizza la libreria jSON [Jackson]. Per illustrare cos’è il jSON (JavaScript Object Notation), presentiamo qui un programma che serializza oggetti in jSON ed esegue l'operazione inversa deserializzando le stringhe jSON prodotte per ricreare gli oggetti iniziali.
La libreria «Jackson» consente di costruire:
- la stringa jSON di un oggetto: new ObjectMapper().writeValueAsString(object);
- un oggetto a partire da una stringa jSON: new ObjectMapper().readValue(jsonString, Object.class).
Entrambi i metodi possono generare un IOException. Ecco un esempio.
![]() |
Il progetto sopra riportato è un progetto Maven con il seguente file [pom.xml]:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>istia.st.pam</groupId>
<artifactId>json</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.3.3</version>
</dependency>
</dependencies>
</project>
- righe 12-16: la dipendenza che include la libreria 'Jackson';
La classe [Personne] è la seguente:
package istia.st.json;
public class Personne {
// dati
private String nom;
private String prenom;
private int age;
// costruttori
public Personne() {
}
public Personne(String nom, String prénom, int âge) {
this.nom = nom;
this.prenom = prénom;
this.age = âge;
}
// firma
public String toString() {
return String.format("Personne[%s, %s, %d]", nom, prenom, age);
}
// getter e setter
...
}
La classe [Main] è la seguente:
package istia.st.json;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class Main {
// lo strumento di serializzazione/deserializzazione
static ObjectMapper mapper = new ObjectMapper();
public static void main(String[] args) throws IOException {
// creazione di una persona
Personne paul = new Personne("Denis", "Paul", 40);
// visualizzazione jSON
String json = mapper.writeValueAsString(paul);
System.out.println("Json=" + json);
// istanziazione di una persona da JSON
Personne p = mapper.readValue(json, Personne.class);
// visualizzazione persona
System.out.println("Personne=" + p);
// un array
Personne virginie = new Personne("Radot", "Virginie", 20);
Personne[] personnes = new Personne[]{paul, virginie};
// visualizzazione JSON
json = mapper.writeValueAsString(personnes);
System.out.println("Json personnes=" + json);
// dizionario
Map<String, Personne> hpersonnes = new HashMap<String, Personne>();
hpersonnes.put("1", paul);
hpersonnes.put("2", virginie);
// Visualizzazione JSON
json = mapper.writeValueAsString(hpersonnes);
System.out.println("Json hpersonnes=" + json);
}
}
L'esecuzione di questa classe genera la seguente visualizzazione sullo schermo:
Dall'esempio si ricava quanto segue:
- l'oggetto [ObjectMapper] necessario per le trasformazioni jSON / Oggetto: riga 11;
- la trasformazione [Personne] --> jSON: riga 17;
- la trasformazione jSON --> [Personne]: riga 20;
- l'eccezione [IOException] generata da entrambi i metodi: riga 13.
9.8. Installazione di [Webstorm]
[WebStorm] (WS) è la versione aggiornata di IDE, derivata da JetBrains, per lo sviluppo di applicazioni HTML / CSS / JS. L'ho trovato perfetto per lo sviluppo di applicazioni Angular. Il sito di download è [http://www.jetbrains.com/webstorm/download/]. Si tratta di un prodotto a pagamento, ma è possibile scaricare una versione di prova valida per 30 giorni. Sono disponibili una versione personale e una versione per studenti a prezzi contenuti.
Per installare le librerie JS all’interno di un’applicazione, WS utilizza uno strumento chiamato [bower]. Questo strumento è un modulo di [node.js], un insieme di librerie JS. Inoltre, le librerie JS vengono recuperate da un repository Git, il che richiede la presenza di un client Git sul computer che effettua il download.
9.8.1. Installazione di [node.js]
Il sito di download di [node.js] è [http://nodejs.org/]. Scaricare il programma di installazione ed eseguirlo. Per il momento non è necessario fare altro.
9.8.2. Installazione dello strumento [bower]
L'installazione dello strumento [bower], che consentirà il download delle librerie JavaScript, può essere effettuata in diversi modi. Noi la eseguiremo dalla console:
C:\Users\Serge Tahé>npm install -g bower
C:\Users\Serge Tahé\AppData\Roaming\npm\bower -> C:\Users\Serge Tahé\AppData\Roaming\npm\node_modules\bower\bin\bower
bower@1.3.7 C:\Users\Serge Tahé\AppData\Roaming\npm\node_modules\bower
├── stringify-object@0.2.1
├── is-root@0.1.0
├── junk@0.3.0
...
├── insight@0.3.1 (object-assign@0.1.2, async@0.2.10, lodash.debounce@2.4.1, req
uest@2.27.0, configstore@0.2.3, inquirer@0.4.1)
├── mout@0.9.1
└── inquirer@0.5.1 (readline2@0.1.0, mute-stream@0.0.4, through@2.3.4, async@0.8
.0, lodash@2.4.1, cli-color@0.3.2)
- riga 1: il comando [node.js] che installa il modulo [bower]. Affinché il comando funzioni, è necessario che l’eseguibile [npm] si trovi nella directory PATH del computer (vedere il paragrafo seguente);
9.8.3. Installazione di [Git]
Git è un sistema di gestione delle versioni del software. Esiste una versione per Windows denominata [msysgit], disponibile su URL e [http://msysgit.github.io/]. Non utilizzeremo [msysgit] per gestire le versioni della nostra applicazione, ma semplicemente per scaricare le librerie JS presenti su siti del tipo [https://github.com] che richiedono un protocollo diaccesso speciale, fornito dal client [msysgit]
La procedura guidata di installazione propone diverse fasi, tra cui le seguenti:
![]() | ![]() |
Per le altre fasi dell’installazione, è possibile accettare i valori predefiniti proposti.
Una volta completata l’installazione di Git, verificare che l’eseguibile si trovi nella directory PATH del proprio computer: [Panneau de configuration / Système et sécurité / Système / Paramètres systèmes avancés]:
![]() | ![]() |
La variabile PATH ha il seguente aspetto:
D:\Programs\devjava\java\jdk1.7.0\bin;D:\Programs\ActivePerl\Perl64\site\bin;D:\Programs\ActivePerl\Perl64\bin;D:\Programs\sgbd\OracleXE\app\oracle\product\11.2.0\client;D:\Programs\sgbd\OracleXE\app\oracle\product\11.2.0\client\bin;D:\Programs\sgbd\OracleXE\app\oracle\product\11.2.0\server\bin;...;D:\Programs\javascript\node.js\;D:\Programs\utilitaires\Git\cmd
Verifica che:
- il percorso della cartella di installazione di [node.js] sia presente (in questo caso D:\Programs\javascript\node.js);
- il percorso dell'eseguibile del client Git sia presente (in questo caso D:\Programs\utilità\Git\cmd);
9.8.4. Configurazione di [Webstorm]
Verifichiamo ora la configurazione di [Webstorm]
![]() | ![]() |
![]() |
Selezionare l’opzione [1] sopra riportata. L'elenco dei moduli [node.js] già installati viene visualizzato in [2]. Questo elenco dovrebbe contenere solo la riga [3] del modulo [bower] se avete seguito la procedura di installazione precedente.
9.9. Installazione di un emulatore per Android
Gli emulatori forniti con il SDK di Android sono lenti, il che ne scoraggia l'utilizzo. L'azienda [Genymotion] offre un emulatore molto più performante. È disponibile su URL [https://cloud.genymotion.com/page/launchpad/download/]
(febbraio 2014).
Dovrete registrarvi per ottenere una versione per uso personale. Scaricate il prodotto [Genymotion] con la macchina virtuale VirtualBox;

Installate e avviate [Genymotion]. Scaricate quindi un'immagine per tablet o telefono:
![]() |
- in [1], aggiungere un terminale virtuale;
- in [2], scegliete uno o più terminali da installare. È possibile affinare l'elenco visualizzato specificando la versione di Android desiderata [3] e il modello del terminale [4];
![]() |
- una volta completato il download, otterrete in [5] l’elenco dei terminali virtuali a vostra disposizione per testare le vostre applicazioni Android;




























