Tutoriel Struts1 N°8 : accès JDBC et déploiement WAR Tomcat

/////Tutoriel Struts1 N°8 : accès JDBC et déploiement WAR Tomcat

Maîtrisez l’accès à vos données à partir de Struts1. Mettez en œuvre une Datasource JNDI pour améliorer les performances d’accès aux données et faciliter le dépliement sur un serveur d’applications. Créez et déployez enfin un WAR de l’application dans Tomcat 6.

Ce tutoriel vous est offert par Objis, le spécialiste de la formation Objis.

Suite à nos 10 tutoriaux struts1, consolidez vos compétences struts avec notre formation struts1 meilleures pratiques qui abordera également pas à pas les thèmes suivants : migration struts1 vers struts2 et intégration de struts avec d’autres frameworks et outils : Spring, Hibernate, TopLink, iBatis, EJB3, Web Services, velocity, XDoclet…

Les + objis

 70% de travaux pratiques

 Clé USB avec tous les outils utilisés + Corrigés TPs

 Bilan pédagogique individuel + conseils

Liens utiles

 + de 100 tutoriaux java/jee Objis

 10 tutoriaux Struts 1 Objis

 Objis, spécialiste formation java depuis 2005

 Installation Tomcat 6

 Tutoriel administration Jboss N°3 : intégration MySQL

Prérequis

 Installation Tomcat 6

 Téléchargement Eclipse Entreprise

 Intégration de tomcat dans eclipse

 Déploiement struts-blank dans eclipse
telechargement_pdf_bulletin_inscription.gif

Objectifs

 Accéder à une base de données à partir d’une action struts

 Créer un DAO pour encapsuler l’accès aux données

 Mettre en oeuvre DataSource JNDI et comprendre sa valeur ajoutée

 Comprendre la balise dans struts-config.xml (struts 1.2)

Durée

 40min

Programme

 Partie 1 : création projet ‘demostrutsdatabase’

 Partie 2 : architecture et couches de l’application

 Partie 3 : créatio table

 Partie 4 : intégration Struts / JDBC et 4 étapes clés

 Partie 5 : déploiement de l’application dans Eclipse

 Partie 6 : création WAR et déploiement de l’application hors Eclipse

Partie 1 : création projet ‘demostrutsdatabase’

Une bonne pratique de développement struts est de commencer tout projet struts par le squellette d’application struts-blank livré avec Struts. Le point de départ ‘initial’ de ce tutoriel est donc un projet eclipse avec tomcat intégré et struts-blank déployé.

demo strust database initial struts blank

INFO : Le tutoriel spring1 N°2 Déploiement struts-blank dans eclipse détaille cette opération.

tutoriel_struts_objis_acces_db_1.png

Ce tutoriel étant en réalité la suite au tutoriel votre première application struts1 , dans lequel la classe HelloModel possède une methode SaveToPersistentStore vide…pour l’instant.

Nous partirons donc en réalité d’une version ‘intermédiaire’ dans laquelle la couche d’accès aux données reste à faire.

demo struts database intermediaire

Dans ce tutoriel, nous allons coder la classe et configurer une DataSource JNDI sur le serveur Tomcat.

Partie 2: architecture de l’application

 Vue = hello.jsp

 Model = helloModel.java

 Controleur = ActionServlet

 Traitement = helloAction.java

Partie 3 : création de la table ‘hellostruts’

 Avec votre serveur de base de données (ici WAMP), créez une base de données nommée ‘formation’
hellostruts.sql.zip

 Dans cette base de données exécutez le script hellostruts.sql ci-contre. Il contient des 2 instructions pour créer la table hellostruts et y insérer un prmier enregistrement.

tutoriel_struts_objis_acces_db_11.png

 A travers l’interface phpMyAdmin, méttez en évidence la création de la table et de l’enregistrement :

tutoriel_struts_objis_acces_db_8.png

La phase de création de la table est terminée. Dans la suite, cette table sera alimentée par l’application.

Partie 4 : Accès aux données en 4 étapes

Etape 1 : Driver JDBC

 Copiez le driver de la base de données dans le répertoire lib de tomcat 6.

tutoriel_struts_objis_acces_db_2.png

Etape 2 : web.xml

 Ajoutez les lignes suivantes (sauf ligne web-app) dans tout en bas de votre fichier web.xml.

tutoriel_struts_objis_acces_db_3.png

Vous déclarez que votre code fait référence à une source de données JNDI (DataSource JNDI) qui a pour nom JNDI « jdbc/formation ».

Etape 3 : context.xml

 éditez le fichier context.xml de tomcat intégré à eclipse.

tutoriel_struts_objis_acces_db_16.png

 Ajoutez entre les balises Context de début et de fin du fichier le code suivant :

tutoriel_struts_objis_acces_db_4.png

Ce code configure et met à disposition une ressource JNDI nommée jdbc/formation à de toutes les applications déployées dans tomcat et possédant les informations de connexion.

Cette ressource JNDI est une base de données (ça tombe bien pour notre appli) configurée avec un pool de connexion DBCP (celui de Tomcat). Cette technique permet d’améliorer les performances de l’application, la création / fermeture d’une connexion JDBC étant couteuse.

Etape 4 : Lookup JNDI

 Codez votre accès à la base de données via lookup JNDI :

tutoriel_struts_objis_acces_db_5.png

ça y est, vous avez implémenté votre accès aux données via JNDI. Reste à tester…

Partie 4 : déploiement de l’application dans Eclipse

 Run as ->Run on Server / Tomcat6

 Entrez un nom à qui dire Hello, par exemple ‘douglas’ puis validez (submit)

tutoriel_struts_objis_acces_db_6.png

cette action a 2 effets :

— A l’écran :
tutoriel_struts_objis_acces_db_9.png

— En base de données

tutoriel_struts_objis_acces_db_10.png

Vous avez mis en oeuvre la chaîne Présentation / Traitement / Données. Bravo!

Partie 5 : création WAR

 Cliquez-droit sur le projet ->Export->War

tutoriel_struts_objis_acces_db_12.png

Vous obtenez l’écran suivant :

tutoriel_struts_objis_acces_db_13.png

 Choisissez un répertoire de livraison (ici C:formationstruts1livraisons) ,puis FINISH. Eclipse créer le fichier demostrutsdatabase.war

tutoriel_struts_objis_acces_db_14.png

Dans la suite vous allez déployer ce war dans un serveur Tomcat de test.

 Arrêtez le Tomcat d’éclipse.

Configuration de Tomcat : context.xml

ATTENTION : vous avez notez dans la mise en oeuvre Connexion DB en 4 étapes que 2 étapes sont liés au serveur. Le premier pour copie du Driver et le 2ème pour mise à jour du fichier confcontext.xml de Tomcat.

Bien se rapeller queles fichier de deconf que vous voyez dans la config Eclipse ne SONT pas les même que ceux du tomcat que vous avez installé (en effet Eclipse faut une copie des fichiers par workspace.)

 Editez le fichier TOMCAT_HOMEconfcontext.xml de votre Tomcat.

tutoriel_struts_objis_acces_db_15.png

 Ajoutez la même déclaration de la Resource JNDI jdbc/formation (exactement la même opération que plus haut) et enregistrez.

tutoriel_struts_objis_acces_db_4.png

 Lancez Tomcat via bin/startup

tutoriel_struts_objis_acces_db_17.png

 Copiez le fichier demostrutsdatabase.war dams le répertoire webapps de tomcat

 Lancez votre navigateur à l’adresse : http://localhost:8080/demostrutsdatabase

tutoriel_struts_objis_acces_db_18.png

Vous devez obtenir les mêmes résultats ci-dessus que lorsque vous avez déployé dans Eclipse.

 Entrez le nom d’une personne à qui dire bonjour (ici nassur)

tutoriel_struts_objis_acces_db_22.png

puis valider .

— Effet sur l’écran

tutoriel_struts_objis_acces_db_19.png

— Effet en base

tutoriel_struts_objis_acces_db_20.png

Logs Tomcat

tutoriel_struts_objis_acces_db_21.png

Vous avez correctement déployer le war struts dans tomcat 6.

projet final

projet hellostruts database jndi final

Optimisations couche DAO

D’un point de vue architecture applicative, citez au moins un inconvénient de notre stratégie d’accès aux données.

Analysez le projet eclipse suivant, et expliquez la valeur ajoutée de l’architecture mise en œuvre.

demostrutsdao

Conclusion

Dans ce tutoriel, vous avez développé mis en œuvre une stratégie d’accès aux données avec Struts1. Cette stratégie est basée sur la configuration coté serveur d’une Datasource JNDI et l’utilisation de l’API javax.sql.

La configuration d’une Datasource JNDI et la mise en œuvre d’un pool de connexion représentent des savoir-faire clés du développeur JEE.

Le prochain tutoriel vous permettra de restituer à l’utilisateur les données de façon plus ergonomiques, avec struts Layout.

Prochaine formation STRUTS1

Le chemin le plus court pour avoir les réflexes et la méthodologie du bon développeur Struts 1:

promo_formation_struts_objis_meilleures_pratiques.png

Pour aller plus loin : le réseau Objis

Si vous appréciez notre sens du partage, devenez gratuitement membre ‘classic’ du Club Objis :

 Votez pour les prochains tutoriaux à publier

 Préparez vos entretiens techniques

 Valorisez votre profil / expertise

 Identifiez des opportunités d’emploi

 Recevez la newsletter objis.com

2018-01-30T08:35:33+01:00

Contactez nous

241 rue DUGUESCLIN, 69003 Lyon

Web : Objis : spécialiste formation Java