samedi 7 mars 2015

Créer une application web JEE 7 Primefaces avec Netbeans 8

Introduction

Netbeans, si on le maîtrise bien, est un environnement de développement intégré qui facilite beaucoup la vie aux développeurs JEE.
Avec une interface conviviale et très riche en fonctionnalités, il constitue un vrai outil RAD pour créer de manière très simple de grosses applications web d’entreprise en utilisant la puissance du langage Java. 
Dans ce tutoriel, nous allons voir comment créer pas à pas une application web avec Netbeans 8.0.

1.       Création du projet Maven sous Netbeans 8.0


Nous allons créer une application web Maven avec Netbeans 8.0. Pour ce faire lancez l’éditeur et cliquez sur le menu File et choisir New Project. La combinaison des touches Ctrl + Maj + N fait le même travail. La boîte de dialogue suivante apparaît, choisissez Maven dans Categories et Web Application dans Projects. Cliquez sur Next

Figure 1: créer une application web Maven sous Netbeans 8.0

Dans la fenêtre qui suit, vous définissez le nom du projet dans Project Name ainsi que le répertoire de stockage des fichiers du projet dans Project Location. Choisissez un groupe Id, le champ Package va être fourni automatiquement avec la concaténation du nom du groupe Id et du projet. Vous pouvez définir ce dernier à votre guise, de même que la version du projet. Cliquez ensuite sur Next


Figure 2: Définir le nom et la location du projet

Choisissez Glassfish Server 4 comme serveur d’application et Java EE7 Web pour la version JEE. Au préalable le serveur d’application Glassfish est installé lors de l’installation de Netbeans 8.0. Pour plus de détails sur l’installation de Netbeans 8.0 rendez-vous à l’adresse http://www.netbeans.org/downloads. Ensuite cliquez sur Finish. A ce stade le projet Maven va être créé par Netbeans.


Figure 3: Choix du serveur d'application et de la version JEE

Dans l’explorateur de Netbeans 8.0 à gauche, dans l’onglet Projects vous verrez le projet Maven créé. En développant (cliquez sur le « + » à gauche du nom du projet) cela affiche les fichiers de l’application regroupés en dossier. 
Web Pages : regroupe tout ce qui est présentation (les fichiers html, xhtml, css, images, templates, …).
Source Packages : regroupe tout ce qui est métier (entités JPA, EJB).
Dependencies : contient les dépendances du projet. Le JAR javaee-web-api-7.0.jar vient par défaut avec Glassfish Server. D’autres JAR seront téléchargés et affichés au fur et à mesure de l’avancement du projet. Lorsqu’on a besoin d’ajouter un JAR avec Maven la méthode la plus simple est de le renseigner dans le fichier pom.xml situé dans le dossier Project Files.
Java Dependencies : la version du JDK configuré dans les variables d’environnement s’affiche ici.


Project Files : ce dossier contient des fichiers de configuration, notamment le fichier pom.xml qui vient avec Maven et liste toutes les dépendances du projet (pour plus de détails sur comment remplir  ce fichier allez à l’adresse http://maven.apache.org/pom.html). Pour les autres fichiers vous n’aurez pas, la plupart du temps, à les renseigner. 

Vous pouvez lancer le projet maintenant, mais au préalable il faudrait démarre le serveur d’application et l’y déployer. Vous avez deux méthodes (peut-être plus) pour lancer le serveur d’application :


·         En lançant le menu démarrer, sélectionnez Java EE 7 SDK et cliquez pour développer le menu, vous avez deux boutons permettant de démarrer ou arrêter Glassfish.

Figure 4: Démarrer ou arrêter le serveur d'application Glassfish via le menu Démarrer
·         En mode ligne de commande, en tapant au choix les commandes suivantes :

asadmin start-domain domain1

asadmin stop-domain domain1



Au préalable il faudrait bien configurer Glassfish dans les variables d’environnement, notamment y ajouter le répertoire des binaires situés dans %GLASSFISH_HOME%/bin. %GLASSFISH_HOME% fait référence au répertoire d’installation de Glassfish Server. 

      
Figure 5: Démarrer/Arrêter Glassfish en mode ligne de commande

Le serveur d’application est démarré et on peut déployer pour la première fois notre projet en cliquant sur celui-ci avec le bouton et choisir Run. Ou simplement en cliquant sur le bouton Run de la barre d’outils Netbeans 8.0.




Une fois l’application déployée sur Glassfish, elle est accessible à l’adresse URL : http://localhost:8080/sysgate. La page d’index générée par défaut affiche le message « Hello World !».



Figure 6: Lancement de l'application sysgate

2. Génération des entités à partir de la base de données

Le prérequis de cette étape est bien sûr la création des tables correspondantes à vos entités (issu de la modélisation) dans la base de données. Netbeans 8.0 permet de faire une introspection de la base de données et de créer les entités JPA à partir des tables d’un schéma donné et se charge également du mapping objet relationnel.
Pour générer les classes JPA à partir des tables, allez dans File > New File… Dans la boite de dialogue suivante choisissez Persistence dans Categories et Entity Classes from Database dans File Types et cliquez sur Next.

Figure 7: Générer les entités à partir des tables - Etape 1

Dans la fenêtre suivante, il s’agit de choisir une source de données dans le champ Data Source. C’est un objet qui permet à notre application d’avoir         accès à une base de données. Mais puisque nous n’en disposons pas encore, nous allons la créer. Si vous développez le champ Data Source vous verrez la liste des sources de données disponibles ainsi qu’une dernière ligne New Data Source… permettant d’en créer une nouvelle. Renseignez ensuite le nom de la source de donnée à créer et choisissez New Database Connection… 



Figure 8: Création d'une source de données - Etape 2
Choisissez ensuite le type du Driver qui dépend du SGBD. Notre application va interagir avec une base MySQL c’est pourquoi il faut choisir pour le champ Driver MySQL (Connector / J driver) et fournissez le chemin de ce driver, préalablement téléchargé et déposé dans un répertoire donné. Cliquez sur Next.





Figure 9: Création de la source de données - Choix du driver

Définissez les propriétés de cette nouvelle connexion comme suit :

Figure 10: Création d'une source de données - Propriétés de la connexion

·         Host : le serveur où se situe votre base de données. Dans notre cas la base de données est sur le même serveur que l’application et donc on a localhost pour ce champ.
·         Port : le port du serveur de base de données. C’est 3306 pour MySQL par défaut.
·         Database : le nom de votre base de données.
·         User name : un utilisateur de la base de données. De préférence un utilisateur capable de mettre à jour la structure de la base de données. Pour rappel, l’application se servira de cet utilisateur pour créer et mettre à jour les tables de la base via la source de données.
·         Password : le mot de passe de l’utilisateur choisi.
·         JDBC URL : la chaine exacte de connexion à la base de données.
Après définition de la connexion vous pouvez cliquer sur le bouton Test Connection pour vous assurer que les paramètres fournis sont bons. Le cas échéant, le message d’information Connection Succeeded est affiché sur la même boite de dialogue. Cliquez sur Next.
Pour le nom de la connexion vous pouvez choisir un nom quelconque ou reconduire l’Url JDBC précédent. Cliquez sur Finish et c’est terminé pour la création de la chaine de connexion.


Figure 11: Création d'une connexion - Choix du nom

Cliquez sur le bouton OK de la fenêtre suivante pour poursuivre la génération des entités JPA à partir de la base de données via la source de données qu’on vient de créer.

A ce stade Netbeans est en train de faire une introspection de la base de données et doit bientôt retourner la liste des objets présents.




Une fois la liste des tables affichées, choisissez les tables pour lesquelles vous voulez créer les entités JPA et cliquez sur Add All, cochez le champ Include Related Tables qui ajoute toutes les dépendances pour une table choisie et cliquez sur Next.



Figure 12: Création des entités JPA - choix des tables

Pour chaque table sélectionnée vous pouvez choisir le nom de l’entité JPA correspondante à créer dans votre application ou laisser la valeur par défaut. Renseignez le nom du package qui va regrouper vos entités. Cochez les cases comme c’est fait dans la capture suivante et cliquez sur Next


Dans les options de mapping laissez Association Fetch à default et choisir java.util.List pour Collection Type. Cochez également Use Column Names in Relationships. Cliquez sur Finish



Figure 13: Génération des entités à partir de la base - Options de mapping

Ci-dessous la liste des entités générées après cette procédure.


Figure 14: Liste des entités générées



Vous pouvez en afficher une entité pour voir son contenu. 


1 commentaire:

alibat a dit…

Ceci n'est qu'un bout d'article de test. La suite va venir et sera plus intéressante.