Vous n'êtes pas connecté. Connexion
|
|
TP2 EJB : Ecriture d'un gestionnaire de comptes bancaireDe $1Table des matières
NOTE : ne commencez pas ce TP en avance, il y a des choses qui ne fonctionnent pas de la même manière avec Glassfish 2.1M.Buffa
IntroductionDans ce TP, contrairement au TP1, nous allons écrire une application de gestion de comptes bancaires, mais sans partir de tables pré-existantes. Vous utiliserez un entity bean CompteBancaire et un session bean GestionnaireDeCompteBancaires. Le TP comporte également l'écriture de servlets et de pages jsp pour se connecter, s'identifier, accèder à ses comptes, transférer de l'argent. Vous travaillerez sur une nouvelle base de données ! Afin de ne pas "casser" celle qui est livrée en exemple (jdbc/sample...) Installation de l'outil de mapping relationnel/objet Hibernate dans GlassfishIl semble que l'outil installé par défaut dans GlassFish, l'outil Toplink d'Oracle, pose certains problèmes avec GlassFish 2.1 et Netbeans 6.7.1. Certains d'entres vous ont eu des erreur "file not foud.... sur un fichier dll" ou encore n'arrivaient pas à déployer lorsque l'entity manager/persistence unit était en mode "create" pour les tables... Enfin, le déploiement d'une nouvelle source de données depuis Netbeans ne fonctionne pas. A ces problèmes, il existe plusieurs remèdes (installer la source de données depuis la console d'administration de GlassFish, ce que j'ai testé avec certains d'entre vous), etc. Mais le remède qui résoud tous les problèmes semble être d'utiliser un autre outil à la place de Toplink. Nous allons utiliser l'outil open source Hibernate. Pour cela, vous devrez installer dans le répertoire lib de GlassFish une vingtaine de fichiers .jar issus de la distribution d'Hibernate et d'Hibernate Persistence Manager. Voici l'ensemble de ces fichiers dans un fichier zippé : Note à l'attention de ceux qui avaient "downgradé" en GlassFish 2 et Netbeans 6.5, vous pouvez conserver cette configuration ou tout re-passer en 6.7.1 et GF 2.1, mais il faut quand même installer Hibernate dans le GlassFish que vous utilisez. Création d'une base de donnée "Banque"Netbeans comprend un outil basique de gestion de SGBD. A partir de l'onglet "services" vous allez ajouter une nouvelle base à la base de données Derby. Ainsi vous n'aurez plus de soucis quant à la création de nouvelles tables, etc.
Donnez ensuite un nom à votre base. Vous pouvez donner un login/password mais ce n'est pas obligatoire. NE CHOISISSEZ PAS LE MEME NOM QUE MOI, Prenez un nom qui contient vos noms de famille ou de binome car ce TP sera à me rendre et il sera noté ! Comme j'importerai vos bases de données, elles doivent toutes avoir un nom différent ! Si tout se passe bien, vous devriez voir votre base dans la liste. Faites bouton de droite/connecter et vous devriez pouvoir commencer à administrer votre base: Ne faites rien pour le moment, car dans ce projet les tables vont êtres crées à partir des classes Java des entity beans ! Ecriture d'un entity bean CompteBancaireVous allez créer un nouveau projet, à la manière du TP1. Donnez-lui un nom qui comporte votre nom de binome ! Au lieu de créer un entity bean à partir d'une table, vous ferez une simple création d'entity bean. Dans la création de la "Persistence Unit", vous indiquerez bien sur la nouvelle source de données que vous venez de créer! ET VOUS PENSEREZ A INDIQUER HIBERNATE COMME OUTIL DE PERSISTENCE ! Si vous avez oublié de le faire ce n'est pas grave, double cliquez le fichier persistence.xml et modifiez l'outil, redéployez. Chaque compte bancaire possèdera :
Comme dans le cours, ajouter une méthode pour initialiser le compte, pour retirer de l'argent, pour en ajouter et pour consulter le solde. Ce n'est pas grave si il n'y a pas de table pour les comptes bancaires, vous verrez que le serveur la créera automatiquement lors du premier déploiement du bean CompteBancaire. Compilez. Vérifiez qu'il n'y a pas d'erreurs.
Ecriture d'un session bean façade : GestionnaireDeCompteBancaireVous allez maintenant écrire un session bean GestionnaireDeCompteBancaire, ce sera un session bean stateful. Ce session bean va proposer pour le moment deux fonctionalités :
Vous ajouterez une méthode creerComptesTest() qui va créer quatre comptes, pour John, Paul, Georges et Ringo, avec les sommes suivantes. Ne faites pas attentions aux numéros de comptes, vous n'avez pas à les préciser puisque vous êtes en clé primaire générée automatiquement.
Ecriture d'une servlet comptes et de jsps associéesRappels:
Inspirez vous de ces deux bouts de code issus du TP1 : Vous devrez utiliser ce type de conception pour votre application, fini les jsps et les servlets sauvages ! Travail à effectuer:
Ajout de nouvelles fonctionalitésVous allez maintenant écrire ce qu'il faut pour proposer le transfert d'argent d'un compte bancaire à l'autre.
|
Powered by MindTouch Deki Open Source Edition v.8.08 |