Skip to content

1. Introduzione

1.1. Présentation

Il codice PDF di questo documento è |QUI|.

Gli esempi di questo documento sono disponibili |QUI|.

In questa sede ci proponiamo di introdurre, con l’ausilio di esempi

  • il framework Java Server Faces 2 (JSF2),
  • la libreria di componenti PrimeFaces per JSF2, destinata alle applicazioni desktop e mobili.

Questo documento è destinato principalmente a studenti e sviluppatori interessati alla libreria di componenti PrimeFaces [http://www.primefaces.org]. Questo framework offre diverse decine di componenti AJAX [http://www.primefaces.org/showcase/ui/home.jsf] che consentono di realizzare applicazioni web con un aspetto e un comportamento simili a quelli delle applicazioni desktop. PrimeFaces si basa su JSF2, da cui la necessità di presentare innanzitutto questo framework. PrimeFaces offre inoltre componenti specifici per dispositivi mobili, che presenteremo anch’essi.

Per illustrare il nostro argomento, realizzeremo un’applicazione per la prenotazione di appuntamenti in diversi ambienti:

  1. un'applicazione web classica con le tecnologie JSF2 / EJB3 / JPA su un server Glassfish 3.1,
  2. la stessa applicazione con funzionalità AJAX, utilizzando la tecnologia PrimeFaces,
  3. e, infine, una versione mobile con la tecnologia PrimeFaces Mobile.

Ogni volta che una versione sarà stata realizzata, la trasferiremo in un ambiente JSF2 / Spring / JPA su un server Tomcat 7. Realizzeremo quindi sei applicazioni Java EE.

Il documento presenta solo ciò che è necessario per compilare queste applicazioni. Non bisogna quindi cercarvi l’esaustività: non la troverete. Non si tratta nemmeno di una raccolta di buone pratiche. Gli sviluppatori esperti potrebbero quindi ritenere che avrebbero agito in modo diverso. Spero semplicemente che questo documento non sia nemmeno una raccolta di cattive pratiche.

Per approfondire JSF2 e PrimeFaces è possibile utilizzare le seguenti di riferimento:

  • [ref1]: Tutorial Java EE5, il riferimento Sun per scoprire Java [http://java.sun.com/javaee/5/docs/tutorial/doc/index.HTML]. Si legga la sezione II [Web Tier] per scoprire la tecnologia web e in particolare JSF. Gli esempi del tutorial possono essere scaricati. Sono disponibili sotto forma di progetti NetBeans che è possibile caricare ed eseguire,
  • [ref2]: *Core JavaServer Faces* di David Geary e Cay S. Horstmann, terza edizione, edito da McGraw-Hill,
  • [ref3]: la documentazione di PrimeFaces [http://primefaces.googlecode.com/files/primefaces_users_guide_3_2.pdf],
  • [ref4]: la documentazione di PrimeFaces Mobile: [http://primefaces.googlecode.com/files/primefaces_mobile_users_guide_0_9_2.pdf].

A volte faremo riferimento a [ref2] per indicare al lettore che può approfondire un argomento con questo libro.

Il documento è stato redatto in modo da essere comprensibile al maggior numero possibile di persone. I prerequisiti necessari per la sua comprensione sono i seguenti:

  • conoscenza del linguaggio Java,
  • conoscenze di base dello sviluppo Java EE.

Sul sito [http://developpez.com] sono disponibili tutte le risorse necessarie per soddisfare tali prerequisiti. Alcune di esse si trovano sul sito [http://tahe.developpez.com]:

1.2. Gli esempi di

Gli esempi del presente documento sono disponibili QUI sotto forma di progetti Maven sia per NetBeans che per Eclipse:

  

Per importare un progetto in NetBeans:

  • in [1], si apre un progetto,
  • in [2], si seleziona il progetto da aprire nel file system,
  • in [3], il progetto viene aperto.

Con Eclipse,

  • in [1], si importa un progetto,
  • in [2], il progetto è un progetto Maven esistente,
  • in [3]: lo si seleziona nel file system,
  • in [4]: Eclipse lo riconosce come un progetto Maven,
  • in [5], il progetto importato.

1.3. Gli strumenti utilizzati

Di seguito, utilizziamo (maggio 2012):

  • l’ambiente di sviluppo integrato (IDE) NetBeans 7.1.2, disponibile su URL [http://www.netbeans.org],
  • Eclipse Indigo (IDE) nella sua versione personalizzata come SpringSource Tool Suite (STS) [http://www.springsource.com/developer/sts],
  • PrimeFaces nella versione 3.2 disponibile su URL [http://primefaces.org/],
  • PrimeFaces Mobile nella versione 0.9.2 disponibile su URL [http://primefaces.org/],
  • WampServer per SGBD, MySQL e [http://www.wampserver.com/].

1.3.1. Installazione di NetBeans IDE

Qui descriviamo l’installazione di NetBeans 7.1.2 disponibile su URL e [http://netbeans.org/downloads/].

 

È possibile utilizzare la versione Java EE con i due server Glassfish 3.1.2 e Apache Tomcat 7.0.22. Il primo consente di sviluppare applicazioni Java EE con EJB3 (Enterprise Java Bean), mentre l'altro permette di sviluppare applicazioni Java EE senza EJB. Sostituiremo quindi gli EJB con il framework Spring.

Una volta scaricato il programma di installazione di NetBeans, lo eseguiremo. A tal fine è necessario disporre di un JDK (Java Development Kit) [http://www.oracle.com/technetwork/java/javase/overview/index.HTML]. Oltre a NetBeans 7.1.2, installeremo:

  • il framework JUnit per i test unitari,
  • il server Glassfish 3.1.2,
  • il server Tomcat 7.0.22.

Una volta completata l’installazione, si avvia NetBeans:

  • in [1], NetBeans 7.1.2 con tre schede:
  • la scheda [Projects] mostra i progetti NetBeans aperti;
  • la scheda [Files] mostra i vari file che compongono i progetti NetBeans aperti;
  • la scheda [Services] raggruppa una serie di strumenti utilizzati dai progetti NetBeans,
  • in [2] si attiva la scheda [Services] e in [3] il ramo [Servers],
  • in [4], si avvia il server Tomcat per verificare che sia stato installato correttamente,
  • in [6], nella scheda [Apache Tomcat] [5], è possibile verificare il corretto avvio del server,
  • in [7], si arresta il server Tomcat,

Si procede allo stesso modo per verificare la corretta installazione del server Glassfish 3.1.2:

  • in [8], si avvia il server Glassfish,
  • in [9] si verifica che sia stato avviato correttamente,
  • in [10], lo si arresta.

Ora disponiamo di un IDE operativo. Possiamo iniziare a sviluppare progetti. A seconda di questi, saremo portati a descrivere in dettaglio diverse caratteristiche del IDE.

Ora installeremo l’Eclipse IDE e al suo interno registreremo i due server Tomcat 7 e Glassfish 3.1.2 che abbiamo appena scaricato. A tal fine, dobbiamo conoscere le cartelle di installazione di questi due server. Queste informazioni si trovano nelle proprietà dei due server:

  • in [1], la cartella di installazione di Tomcat 7,
  • e [2], la cartella dei domini del server Glassfish. Nella configurazione di Glassfish in Eclipse, sarà necessario specificare solo la seguente informazione: [D:\Programs\devjava\Glassfish\glassfish-3.1.2\glassfish].

1.3.2. Installazione di Eclipse

Sebbene Eclipse non sia l'IDE utilizzato in questo documento, ne presentiamo comunque l'installazione. Infatti, gli esempi del documento sono forniti anche sotto forma di progetti Maven per Eclipse. Eclipse non include Maven preintegrato. Per farlo è necessario installare un plugin. Anziché installare una versione base di Eclipse, installeremo la SpringSource Tool Suite [http://www.springsource.com/developer/sts], una versione di Eclipse già dotata di numerosi plugin relativi al framework Spring, ma anche di 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 che non utilizzeremo. In [8], si avvia la procedura guidata per l'aggiunta di un nuovo server,
  • in [9A], ci vengono proposti diversi server. Scegliamo di installare un server Tomcat 7 di Apache [9B],
  • in [10], indichiamo la cartella di installazione del server Tomcat 7 installato con NetBeans. Se non si dispone di un server Tomcat, utilizzare il pulsante [11],
  • in [12], il server Tomcat apparirà nella finestra [Servers],
  • in [13], avviamo il server,
  • in [14], è in esecuzione,
  • in [15], lo si arresta.

Nella finestra [Console], se tutto va bene, si ottengono i seguenti log di Tomcat:

mai 26, 2012 8:56:51 AM org.apache.catalina.core.AprLifecycleListener init
Infos: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: ...
mai 26, 2012 8:56:55 AM org.apache.coyote.AbstractProtocol init
Infos: Initializing ProtocolHandler ["http-bio-8080"]
mai 26, 2012 8:56:55 AM org.apache.coyote.AbstractProtocol init
Infos: Initializing ProtocolHandler ["ajp-bio-8009"]
mai 26, 2012 8:56:55 AM org.apache.catalina.startup.Catalina load
Infos: Initialization processed in 4527 ms
mai 26, 2012 8:56:55 AM org.apache.catalina.core.StandardService startInternal
Infos: Démarrage du service Catalina
mai 26, 2012 8:56:55 AM org.apache.catalina.core.StandardEngine startInternal
Infos: Starting Servlet Engine: Apache Tomcat/7.0.22
mai 26, 2012 8:56:57 AM org.apache.catalina.util.SessionIdGenerator createSecureRandom
Infos: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [218] milliseconds.
mai 26, 2012 8:56:57 AM org.apache.coyote.AbstractProtocol start
Infos: Starting ProtocolHandler ["http-bio-8080"]
mai 26, 2012 8:56:57 AM org.apache.coyote.AbstractProtocol start
Infos: Starting ProtocolHandler ["ajp-bio-8009"]
mai 26, 2012 8:56:57 AM org.apache.catalina.startup.Catalina start
Infos: Server startup in 2252 ms
  • sempre nella finestra [Servers], si aggiunge un nuovo server [16],
  • in [17], il server Glassfish non viene proposto,
  • in questo caso, si utilizza il collegamento [18],
  • in [19], si sceglie di aggiungere un adattatore per il server Glassfish,
  • questo viene scaricato e, tornando alla finestra [Servers], si aggiunge un nuovo server,
  • questa volta in [21], vengono proposti i server Glassfish,
  • in [22], si seleziona il server Glassfish 3.1.2 scaricato con NetBeans,
  • in [23], si indica la cartella di installazione di Glassfish 3.1.2 (prestare attenzione al percorso indicato in [24]),
  • se non si dispone di un server Glassfish, utilizzare il pulsante [25],
  • in [26], la procedura guidata richiede la password dell'amministratore del server Glassfish. Per una prima installazione, è normalmente adminadmin,
  • una volta terminata la procedura guidata, nella finestra [Servers], il server Glassfish appare come [27],
  • in [28]; lo si avvia,
  • in [29] potrebbe verificarsi un problema. Ciò dipende dalle informazioni fornite durante l'installazione. Glassfish richiede un JDK (Java Development Kit) e non un JRE (Java Runtime Environment),
  • per accedere alle proprietà del server Glassfish, si fa doppio clic su di esso nella finestra [Servers],
  • si apre la finestra [20], nella quale si segue il link [Runtime Environment],
  • in [31], si sostituisce il JRE utilizzato di default con un JDK. A tal fine, si utilizza il collegamento [32],
  • in [33], i JRE installati sul computer,
  • in [34], se ne aggiunge un altro,
  • in [35], si seleziona [Standard VM] (macchina virtuale),
  • in [36], si seleziona un JDK (>=1.6),
  • in [37], il nome assegnato al nuovo JRE,
  • una volta tornati alla schermata di selezione di JRE per Glassfish, scegliamo il nuovo JRE dichiarato come [38],
  • una volta completata la procedura guidata di configurazione, riavviamo [Glassfish] e [39],
  • in [40], viene avviato,
  • in [41], la struttura ad albero del server,
  • in [42], si accede ai log di Glassfish:
...
Infos: Running GlassFish Version: GlassFish Server Open Source Edition 3.1.2 (build 23)

Infos: Grizzly Framework 1.9.46 started in: 125ms - bound to [0.0.0.0:7676]
Infos: Grizzly Framework 1.9.46 started in: 125ms - bound to [0.0.0.0:3700]
Infos: Grizzly Framework 1.9.46 started in: 188ms - bound to [0.0.0.0:8080]
Infos: Grizzly Framework 1.9.46 started in: 141ms - bound to [0.0.0.0:4848]
Infos: Grizzly Framework 1.9.46 started in: 141ms - bound to [0.0.0.0:8181]
Infos: Registered org.glassfish.ha.store.adapter.cache.ShoalBackingStoreProxy for persistence-type = replicated in BackingStoreFactoryRegistry

Infos: GlassFish Server Open Source Edition 3.1.2 (23) heure de démarrage : Felix (13 790 ms), services de démarrage (2 028 ms), total (15 818 ms)

Infos: JMX005: JMXStartupService had Started JMXConnector on JMXService URL service:jmx:rmi://Gportpers3.ad.univ-angers.fr:8686/jndi/rmi://Gportpers3.ad.univ-angers.fr:8686/jmxrmi
  • in [43], si arresta il server Glassfish.

1.3.3. Installazione di [WampServer]

[WampServer] è un pacchetto 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,

Image

Non forniremo molti dettagli sull’utilizzo di [PhpMyAdmin]. Mostreremo semplicemente come utilizzarlo per creare il database dell’applicazione di esempio di questo tutorial.