mercredi 23 septembre 2009

Génération d'une appli JEE 6 avec NetBeans

Le développement d'applications de gestion contient son petit lot des taches répétitives, demandant peu de réflexion : création des formulaires, persistance et récupération des données... En tant que développeurs, nous rêvons souvent de pouvoir automatiser ces étapes peu intéressantes pour nous concentrer sur le vrai code métier de notre application, celui qui nécessite réellement l'apport d'une intelligence humaine.
Pour cela, nous pouvons utiliser des frameworks de RAD, comme Spring ROO ou Grails.
Nous allons voir aujourd'hui une autre alternative, la génération de code sous NetBeans à partir du modèle objet.
Cette méthode permet de générer une application JEE 6 à base de JSF 2.0 et EJB 3.1 à partir d'entités JPA 2.0, en utilisant l'outil JsfCrudGenerator de NetBeans 6.8 (qui est encore pour le moment en version beta). Attention à bien télécharger la version "Java" pour bénéficier du serveur GlassFish v3, dont nous aurons besoin dans la suite du tutoriel.

La première étape consiste à définir son modèle objet. Nous allons utiliser au maximum les wizard de NetBeans pour avoir le moins de code possible à taper.
Après avoir créé un projet de type Web Application dans NetBeans en ayant coché l'option Java Server Faces, créer les entités du domaine métier depuis le menu "New-->Entity Class" :




Lors de la création de la première entité, cliquer sur "Create Persistence Unit",cocher l'option "Table Generation Strategy : create" et choisir un des datasources proposés :



Au runtime, une base de données Derby sera automatiquement créée sur le serveur Glassfish livré avec NetBeans.

Une fois les entités créées, utiliser le wizard "New-->JSF Pages from entities Classes", juste au dessus de l'option Entity Class.
A partir du wizard, sélectionnez toutes les entités :


Suivez le wizard, et voilà votre application est créée! Vous pouvez la tester en effectuant un clic droit sur le projet et en cliquant sur "Run".

  • Exemples d'écrans :
Lister des entités

Modifier une entité


Vous comme pouvez le constater, cette méthode a l'avantage de faire gagner énormément de temps sur l'écriture des pages JSF, des contrôleurs et des EJB. Cependant elle n'est pas exempte de défauts : le code généré n'est pas très agréable à lire et à maintenir, notamment lorsqu'il fait appels aux fonctions "jsf_crud" dans les pages JSF... De plus, il ne faut pas espérer obtenir une application livrable en l'état, comme vous pouvez le constater il s'agit surtout de pré-macher le travail pour gagner du temps, les pages web générées étant assez rudimentaires.

6 commentaires:

palmipod a dit…

j'essaye ça aujourd'hui / bravo (PCE)

Alexis MP a dit…

Petite correction: NetBeans 6.8, pas 6.8.1

Loïc Descotte a dit…

En effet, merci c'est corrigé!

Anonyme a dit…

svp comment faire l'authentification avec jsf

http://groups.google.fr/group/mprfst2009 a dit…

bjr a tous
je suis entrais de faire une application afin de gérer les utilisateurs ajout/supprimer/modification
jsf ça marche mais j'ai voulu faire la partie authentification
si il y a qq qui p m'aider c urgent svp
la partie authentification sert a savoir si les donné saisie d'un utilisateur on va lui accer a sa page si admin .....;;;;
svp c urgent

Loïc Descotte a dit…

Bonjour,
je te conseille de regarder du côté de l'API Bean Validation, qui s'intègre très bien à JSF 2 : Exemple

Et si tu pouvais éviter les double posts et langage SMS ce serait sympa aussi :)
Cordialement

Loic

Enregistrer un commentaire