Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Filière open-source Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Responsable de document Nom / Visa Examinateur Nom / Visa Approbateur Nom / Visa L. Denanot Matthieu Guillemette Gilles Kempf David Duarte SOMMAIRE 1. Plate-forme de développement open-source .................................................................... 4 1.1 Pré-requis (packages)......................................................................................................................... 4 1.2 Configuration des outils de développement ..................................................................................... 4 1.2.1 Configuration du JDK ...................................................................................................................... 4 Dernière impression le 15/04/17 Page 1 sur 100 Note technique DEI 1.2.2 2. Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Configuration d’Apache Tomcat ..................................................................................................... 6 Paramétrage de l’environnement de développement....................................................... 8 2.1 Premier démarrage d’Eclipse 3.1 ..................................................................................................... 8 2.1.1 Choix de l’espace de travail à utiliser .............................................................................................. 8 2.1.2 Ecran de bienvenue .......................................................................................................................... 9 2.2 Réglage des préférences ....................................................................................................................10 2.2.1 Réglage de présentation de l’interface utilisateur ...........................................................................10 2.2.2 Préférences pour l’historique local .................................................................................................12 2.2.3 Réglage d’accès à Internet via le proxy ..........................................................................................13 2.2.4 Déclaration du JDK 1.4.2 complet à utiliser avec Eclipse ..............................................................14 2.2.5 Déclaration du serveur Tomcat 5 à utiliser avec Eclipse ................................................................16 2.2.6 Préférences de validation des fichiers XML ...................................................................................19 2.3 Perspectives et vues pour le développement d’applications Web .................................................21 2.3.1 Utilisation des Perspectives et Vues standard d’Eclipse .................................................................21 2.3.2 Perspective J2EE et vues associées .................................................................................................23 3. Cycle de développement d’un projet............................................................................... 29 3.1 Création d’un nouveau projet Web dynamique .............................................................................29 3.1.1 Lancement de l’assistant de création de projet Web dynamique ....................................................29 3.1.2 Réglages du dialogue de l’assistant de projet Web dynamique .....................................................30 3.1.3 Génération de la structure du projet Web dynamique .....................................................................31 3.1.4 Structure du projet Web dynamique ..............................................................................................33 3.2 Développement du projet .................................................................................................................34 3.2.1 Ajout de pages HTML et JSP .........................................................................................................34 3.2.2 Edition de pages HTML et JSP .......................................................................................................35 3.2.3 Création d’une Servlet ....................................................................................................................40 3.3 Tester un projet .................................................................................................................................43 3.3.1 Exécution directe d’un projet avec déclaration d’un serveur de test à la volée...............................43 3.4 Déboguage d’une application sur le serveur ...................................................................................47 3.5 Modification de la configuration d’un serveur ...............................................................................49 3.6 Configuration des propriétés de déploiement d’une application Web .........................................51 3.6.1 Propriétés de déploiement et configuration du serveur ...................................................................51 3.6.2 Avantages liés à l’utilisation du fichier de contexte .......................................................................51 3.6.3 Création d’un fichier de contexte Tomcat (META-INF/context.xml) ............................................52 3.6.4 Exemples de fichiers « context.xml » .............................................................................................61 3.6.5 Notes complémentaires relatives à l’accès aux SGBD ...................................................................63 3.6.6 Problème de prise en compte du fichier de contexte Tomcat .........................................................64 3.7 Génération d’une archive WAR de l’application pour le déploiement ........................................66 3.7.1 Fabrication de l’archive WAR à l’aide de l’assistant d’export .......................................................67 3.7.2 Fabrication de l’archive WAR à l’aide d’un script Ant ..................................................................67 3.8 Génération d’une archive EAR de l’application pour le déploiement ..........................................68 3.8.1 Création d’un projet d’application d’entreprise et ajout d’un module Web ....................................68 3.8.2 Exportation de l’application d’entreprise sous forme d’archive EAR : ..........................................70 3.9 Déploiement des archives WAR ou EAR par DPI .........................................................................70 3.10 Gestion de dépendances entre projets .............................................................................................71 3.10.1 Dépendances entre projets ..........................................................................................................71 3.10.2 Exemple ......................................................................................................................................72 3.11 Développement coopératif : utilisation de CVS ..............................................................................80 Dernière impression le 15/04/17 Page 2 sur 100 Note technique DEI 3.11.1 3.11.2 3.11.3 3.11.4 3.11.5 4. V1.2.3 Configuration d’un référentiel CVS dans Eclipse ......................................................................81 Démarrage du projet : publication de la première version dans CVS .........................................82 Organisation du référentiel CVS ................................................................................................85 Importation d’un projet publié dans CVS ...................................................................................86 Synchronisation avec le référentiel CVS ....................................................................................89 Développement avec le framework DEI......................................................................... 98 4.1 5. Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 Configuration des propriétés JNDI liées à l’utilisation du framework DEI ................................98 Historique des versions ................................................................................................. 100 Dernière impression le 15/04/17 Page 3 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 1. Plate-forme de développement open-source 1.1 Pré-requis (packages) Le développement d’applications Web pour la filière open-source requiert les packages suivants : JDK 1.4.2 de Sun Apache Tomcat 5.0.28 Eclipse 3.1 + Web Tools Platform 1.0 Le serveur de bases de données MySQL est en général installé dans un environnement de développement/intégration partagé entre tous les membres d’un projet. L’accès au SGBD MySQL pour la création de bases, de tables, et la mise au point et l’exécution de requêtes peut être facilité par l’installation du package optionnel suivant : SQLYog 4.05 Free (outil graphique frontal pour MySQL) 1.2 Configuration des outils de développement 1.2.1 Configuration du JDK Pour assurer le bon fonctionnement des outils et programmes qui dépendent du JDK, il est primordial que la variable d’environnement « JAVA_HOME » soit bien définie. Note préliminaire : si vous n’avez pas les droits nécessaires pour définir des variables d’environnement système, vous pouvez cependant adapter la procédure suivante pour définir une variable d’environnement utilisateur. Procédure : - A partir du Menu Démarrer, ouvrir « Paramètres Panneau de configuration Système » - dans le panneau « Propriétés Système » : - sélectionner l’onglet « Avancé » - cliquer sur le bouton « Variables d’environnement » : Dernière impression le 15/04/17 Page 4 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 La boîte de dialogue « Variables d’environnement » s’affiche: Dernière impression le 15/04/17 Page 5 sur 100 Note technique Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 DEI - Réf. : C-LABPR/IFD/05-169 V1.2.3 Cliquer sur le bouton « Nouveau.. » en dessous de la liste « Variables système » pour créer une nouvelle variable d’environnement Dans le dialogue « Nouvelle variable système » : - entrer « JAVA_HOME » comme nom de la variable, entrer le répertoire d’installation sélectionné à l’étape 2 dans le champ « valeur de la variable » cliquer « OK » De retour dans le dialogue « Variables d’environnement », vérifier que la variable système « JAVA_HOME » a été définie correctement, puis cliquer « OK » pour valider la modification : 1.2.2 Configuration d’Apache Tomcat Pour assurer le bon fonctionnement des outils et programmes qui dépendent du JDK, il est primordial que la variable d’environnement « CATALINA_HOME » soit bien définie. Procédure : - A partir du Menu Démarrer, ouvrir le panneau de configuration « Système », sélectionner l’onglet « Avancé » et cliquer sur le bouton « Variables d’environnement » : - Dans la boîte de dialogue « Variables d’environnement » : - Cliquer sur le bouton « Nouveau.. » en dessous de la liste « Variables système » pour créer une nouvelle variable d’environnement - Dans le dialogue « Nouvelle variable système » : - entrer « CATALINA_HOME » comme nom de la variable, - entrer le répertoire d’installation sélectionné à l’étape 4 dans le champ « valeur de la variable » - cliquer « OK » Dernière impression le 15/04/17 Page 6 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 De retour dans le dialogue « Variables d’environnement », vérifier que la variable système « CATALINA_HOME » a été définie correctement, puis cliquer « OK » pour valider la modification. Dernière impression le 15/04/17 Page 7 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 2. Paramétrage de l’environnement de développement 2.1 Premier démarrage d’Eclipse 3.1 2.1.1 Choix de l’espace de travail à utiliser Au premier démarrage d’Eclipse, vous devez choisir l’emplacement où Eclipse stockera votre espace de travail (« workspace »). L’espace de travail est un dossier dans lequel Eclipse stockera vos projets. Le mécanisme employé est semblable à celui d’IBM WebSphere Studio 5.1.1 : - L’utilisateur peut configurer plusieurs espaces de travail distincts utilisables avec l’environnement de développement (pratique recommandée pour éviter de mélanger différents projets au sein d’un même environnement) L’utilisateur peut configurer le choix d’un espace de travail par défaut automatiquement au démarrage. AVERTISSEMENT IMPORTANT : Par défaut Eclipse propose de créer l’espace de travail dans un sous-répertoire de « Mes documents ». Il est formellement déconseillé d’accepter cet emplacement par défaut : en effet, la taille d’un espace de travail peut devenir très importante (plusieurs dizaines de Mo), Or, le répertoire « Mes documents » fait partie du profil utilisateur, qui est limité à 15 Mo. On risque donc dans ce cas de rapidement dépasser le quota d’espace alloué et de devoir supprimer ou déplacer des fichiers pour libérer de l’espace. Dans tous les cas, éviter absolument d’utiliser des emplacements réseau, qui d’une part sont soumis à des quotas d’espace, et d’autre part n’offrent pas de performances suffisantes (débit en lecture/écriture) pour une utilisation correcte. Il est également déconseillé d’utiliser un sous-répertoire d’Eclipse pour éviter le risque de perte de données en cas d’une mise à jour du package Eclipse. RECOMMANDATION : Comme emplacement de « workspace », sélectionner un répertoire sur le disque dur local de la machine. La meilleure solution est de créer un sous-répertoire dans le répertoire partagé « C:\Local » (par exemple : « C:\Local\eclipse\workspace ») Dernière impression le 15/04/17 Page 8 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Exemple — sélection de « C:\Local\eclipse\workspace » pour l’espace de travail : - cliquer sur « Browse » pour choisir et/ou créer le répertoire à utiliser pour l’espace de travail, ou le saisir directement dans le champ texte « Workspace » - désactiver la case à cocher indiquant à Eclipse d’utiliser cet emplacement par défaut. Il est préférable en effet qu’Eclipse demande confirmation de l’emplacement à utiliser à chaque démarrage. Ceci facilite également le changement de « workspace » au démarrage. 2.1.1.1 Choix de l’espace de travail à utiliser par option de ligne de commande : L’utilisateur peut également forcer l’utilisation d’un espace de travail particulier en créant un raccourci vers le programme eclipse.exe et en ajoutant un argument à la ligne de commande pour lancer le raccourci : Syntaxe : eclipse.exe -data <chemin_de_l’espace_de_travail> Exemple : eclipse.exe -data c:\Local\eclipse\workspace_projet1 2.1.2 Ecran de bienvenue Une fois la sélection de l’espace de travail effectuée, le chargement d’Eclipse se poursuit jusqu’à l’affichage d’un écran de bienvenue comportant plusieurs liens vers des informations, fichiers d’aide et exemples concernant Eclipse 3.1. Fermer l’écran de bienvenue pour accéder à l’espace de travail. Noter que l’interface utilisateur est en anglais. Une version francisée de l’interface utilisateur ne sera pas disponible avant août/septembre 2005, au mieux. Noter également que le thème par défaut est assez différent du thème de WSAD 5.1 ou d’Eclipse 2.1 (notamment, les perspectives sont affichées sur une barre d’onglets en haut à droite) : Dernière impression le 15/04/17 Page 9 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Cependant, les réglages des préférences permettront de modifier le thème par défaut afin qu’il s’apparente plus à l’interface familière de WSAD 5.1. 2.2 Réglage des préférences Rappel : avec Eclipse ou WSAD, les préférences sont propres à un espace de travail (« workspace ») donné. Si l’on définit un nouvel espace de travail, il faut alors re-configurer les préférences pour ce nouvel espace de travail. Bien qu’Eclipse 3.1 inclue des fonctionnalités d’import et d’export de préférences, elles ne semblent pas encore fonctionner correctement. Il faudra donc reconfigurer manuellement les préférences pour chaque nouvel espace de travail utilisé. Sélectionner l’option de menu « Window Preferences ». Le dialogue de réglage des préférences s’affiche : - le panneau de gauche contient une liste hiérarchique de catégories - le panneau de droite affiche les options de réglage de la catégorie sélectionnée 2.2.1 Réglage de présentation de l’interface utilisateur - dans le panneau Appearance » Dernière impression le 15/04/17 de gauche, sélectionner la catégorie « General Page 10 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Pour modifier le thème par défaut de façon à revenir à une interface utilisateur similaire à celle de WSAD 5.1, régler les options suivantes (voir copie d’écran cidessus) : - dans « Perspective switcher positions », sélectionner « Left » dans « Current Presentation », sélectionner « Eclipse 2.1 Presentation » décocher la case « Show text on perspective bar » cocher la case « Show traditional style tabs » - Enfin, cliquer sur « Apply ». Une boîte d’alerte (« Confirm Presentation Change ») vous informe qu’il faut redémarrer Eclipse afin que les changements prennent effet. Cliquer « Yes » pour confirmer le redémarrage. Une fois le redémarrage effectué, on retrouve « traditionnelle » d’Eclipse 2.1 et de WSAD 5.1 : Dernière impression le 15/04/17 la présentation Page 11 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Sélectionner à nouveau l’option « Window Preferences » pour continuer les réglages. 2.2.2 Préférences pour l’historique local - dans le panneau de gauche des préférences, sélectionner la sous-catégorie « General Local History » dans le panneau de droite, modifier les valeurs existantes selon le tableau cidessous : Intitulé Description Days to keep files Nombre de jours pendant lesquels les modifications locales réalisées sur les fichiers du projet sont conservées dans l’historique Nombre maximal de versions successives d’un même fichier conservées dans l’historique local Taille maximale de fichier (en Mo) au dessus de laquelle aucun historique local n’est conservé. Seuls les fichiers dont la taille est inférieure à la valeur indiquée verront leurs modifications enregistrées dans l’historique local Entries per file Maximum file size Valeur recommandée 30 50 1 Une fois les valeurs renseignées comme illustré sur la copie d’écran ci-après, cliquer sur « Apply » pour enregistrer vos modifications. Dernière impression le 15/04/17 Page 12 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 2.2.3 Réglage d’accès à Internet via le proxy NOTE IMPORTANTE – Connexion à Internet requise : Actuellement, il est impératif de disposer d’une connexion à Internet avec Eclipse Web Tools Platform pour pouvoir effectuer les tâches suivantes : - créer des nouveaux projets Web dynamiques: Eclipse doit récupérer les DTDs ou schémas XML correspondant aux descripteurs J2EE, notamment les descripteurs de déploiement d’applications Web (fichiers web.xml) - créer des Servlets au sein d’un projet Web dynamique. - valider les différents fichiers XML des projets Si aucune connexion Internet n’est accessible, il sera impossible de créer de nouveaux projets Web, ou de créer des Servlets dans un projet Web. Résolution : Une solution de contournement à ce problème est à l’étude. Cette solution s’appuierait sur les fonctionnalités du catalogue XML (« XML Catalog »), mécanisme permettant de configurer Eclipse afin qu’il utilise des copies locales des schémas XML et DTDs utilisés au lieu de les récupérer via la connexion Internet (c’est le principe mise en œuvre dans WebSphere Studio 5.1). A l’heure actuelle cependant, cette solution n’est pas encore au point. Dernière impression le 15/04/17 Page 13 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Dans le panneau de gauche des préférences, sélectionner la sous-catégorie « Internet Proxy Settings » Dans - - le panneau de droite : cocher la case « Enable proxy » dans « Proxy host », indiquer le nom ou l’adresse IP du proxy ICDC : « ssproxyep.serv.cdc.fr » ou « 10.12.0.73 » dans « Proxy port », indiquer le port utilisé par le proxy : 8085 ne pas cocher les cases use « SOCKS » ou « Enable proxy authentication ». En effet, le mode de connexion au proxy Internet vient d’être modifié (au 1er juin 2005) : désormais, l’authentification est transparente, elle utilise le nom d’utilisateur Windows. cliquer sur « Apply » pour enregistrer les réglages effectués 2.2.4 Déclaration du JDK 1.4.2 complet à utiliser avec Eclipse Eclipse 3.1 embarque son propre environnement d’exécution Java (JRE 1.4.2) dans le sous-répertoire jre/ de l’installation. En effet, intégrant son propre compilateur Java, Eclipse n’a pas besoin d’un kit de développement Java complet (JDK) pour compiler les projets Java. En revanche, l’utilisation du serveur d’application Tomcat à partir d’Eclipse nécessite l’utilisation d’un JDK complet avec Eclipse : en effet, Tomcat fait appel au compilateur Java de la bibliothèque « tools.jar » présente uniquement dans le JDK. Dernière impression le 15/04/17 Page 14 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Avec Eclipse, il est possible de déclarer et de configurer plusieurs JRE ou JDK différents, et de modifier celui qui est utilisé par défaut pour tous les projets. Nous allons donc déclarer sous Eclipse le JDK 1.4.2 complet qui doit avoir été installé séparément sur le poste, et configurer ce JDK comme environnement Java par défaut à utiliser pour tous les projets ; - dans la fenêtre des préférences, naviguer vers la sous-catégorie « Java Installed JREs » dans le panneau de droite, cliquer sur « Add » pour déclarer un nouvel environnement Java : Le dialogue « Add JRE » s’affiche : Dernière impression le 15/04/17 Page 15 sur 100 Note technique DEI - - Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 dans le champ « JRE name », entrer : « JDK 1.4.2 » cliquer sur le bouton « Browse… », et naviguer jusqu’au répertoire d’installation du JDK (par ex.: C:\j2sdk1.4.2_07) et valider. Le chemin s’affiche dans le champ « JRE Home directory », et la liste des bibliothèques système associées au JDK s’affiche dans la liste au-dessous de la case « Use default system libraries ». cliquer « OK » pour valider la déclaration du JDK De retour dans la fenêtre des Préférences, cocher la case en regard du JDK nouvellement ajouté dans la liste « Installed JREs » : Comme le précise le texte souligné dans la photo d’écran ci-avant, « le JRE sélectionné sera utilisé par défaut pour compiler et exécuter les programmes Java ». Cliquer sur « OK » pour valider le changement de configuration. 2.2.5 Déclaration du serveur Tomcat 5 à utiliser avec Eclipse Les applications Web développées avec Eclipse 3.1 sont en principe destinées à être déployées sur le serveur d’application Tomcat v5.0.28 (ou version supérieure). Le package Tomcat 5.0.28 doit en principe avoir été installé séparément sur le poste de développement. La déclaration du serveur Tomcat local sous Eclipse s’effectue à travers les étapes suivantes : Dernière impression le 15/04/17 Page 16 sur 100 Note technique DEI - Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Dans le dialogue des préférences, naviguer jusqu’à la sous-catégorie « Servers Installed Runtimes ». Dans le panneau de droite, cliquer sur « Add » pour déclarer l’installation Tomcat locale en tant que serveur sous Eclipse : Le dialogue « New Server Runtime » apparaît. Dans la liste hiérarchique des types de serveurs, sélectionner « Apache Apache Tomcat v5.0 » et cliquer sur « Next » : Dernière impression le 15/04/17 Page 17 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Dans le dialogue suivant : - cliquer sur « Browse… » et localiser le répertoire d’installation de Tomcat 5. Le chemin sélectionné apparaîtra dans le champ « Tomcat installation directory ». - dans la liste déroulante « JRE : », vérifier que l’environnement Java sélectionné est bien « JDK 1.4.2 » déclaré à l’étape 2.2.4. Si l’environnement sélectionné est un JRE simple, un message d’alerte sera affiché en en-tête de la boîte de dialogue tant que la sélection d’un JDK complet n’aura pas été effectuée (comme illustré ci-contre) : Cliquer ensuite sur « Finish » pour valider la déclaration du serveur. De retour dans la fenêtre des préférences, cocher la case en regard du serveur nouvellement déclaré : comme l’indique le texte souligné dans la copie d’écran cidessous, « l’environnement serveur sélectionné sera utilisé par défaut lors de la création de nouveaux projets ». Enfin, cliquer sur « OK » pour valider les modifications apportées. Dernière impression le 15/04/17 Page 18 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 2.2.6 Préférences de validation des fichiers XML Dans la fenêtre des préférences, la catégorie « Validation » permet de régler les options relatives : - au contrôle des documents XML, DTD et XML-Schema (contrôle du caractère « bien formé » du document, respect de la DTD ou du schéma associé) - aux contrôles de validation J2EE (conformité des projets WAR/EAR/EJB-JAR etc.) La figure suivante illustre les options de validation sélectionnées par défaut : Attention : les options de validation ne peuvent fonctionner qu’à condition que la connexion Internet via le proxy ait été correctement configurée (cf. § 2.2.3) Si l’accès à Internet est désactivé (connexion via le proxy Internet désactivée, indisponible, ou non autorisée), il est possible de désactiver les options de validation (décocher l’ensemble des options). Dernière impression le 15/04/17 Page 19 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Signalement des erreurs/avertissements dans les pages JSP/HTML : Que les options de validation soient activées ou désactivées, Eclipse signale les éventuelles erreurs dans les pages JSP ou HTML uniquement dans la fenêtre de l’éditeur. Les erreurs ou warnings n’apparaissent pas dans la liste des problèmes (vue « Problems ») IMPORTANT – Nécessité d’une connexion Internet Quel que soit le réglage des options de validation, Web Tools Platform essaie systématiquement d’accéder à Internet à l’ouverture des projets Web, afin notamment de contrôler les schémas ou DTDs des descripteurs de déploiement. Il est donc impératif de configurer l’accès à Internet comme indiqué dans les sections précédentes. Note : avec la configuration actuelle (authentification transparente et automatique), aucun problème lié à la connectivité Internet ne sera rencontré. En revanche, en cas de configuration du mode d’authentification manuelle au proxy, (case « authentification requise » cochée, mais aucun nom d’utilisateur ou mot de passe précisé), des blocages peuvent se produire. En effet, pour l’authentification, Eclipse doit afficher une fenêtre de connexion, mais il semble que dans certains cas le dialogue modal s’affiche par erreur « derrière » la fenêtre principale d’Eclipse, causant ainsi le blocage total du programme). Si ce cas de figure se produit, a seule solution est de forcer l’arrêt du processus Eclipse à l’aide du Gestionnaire de Tâches. Résolution : - Ce problème peut généralement être évité si on évite d’ouvrir directement l’arborescence d’un projet dynamique au démarrage d’Eclipse. Avant d’ouvrir le projet, il est conseillé d’attendre quelques secondes que la fenêtre d’authentification au proxy apparaisse spontanément. On peut aussi effectuer un clic droit sur le nom du projet et sélectionner « Propriétés » ce qui déclenche l’apparition de cette fenêtre d’authentification. Ceci se produit quel que soit le réglage des options de validation. La meilleure solution d’éviter cette cause possible de blocage est : si le proxy est capable de réaliser une authentification transparente (comme c’est le cas depuis le 1er juin 2005), désactiver l’option « authentification au proxy » dans les réglages du proxy dans le cas contraire, activer non seulement l’option « authentification au proxy », mais renseigner également le nom et le mot de passe à utiliser pour le proxy Internet. Dernière impression le 15/04/17 Page 20 sur 100 Note technique DEI 2.3 Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Perspectives et vues pour le développement d’applications Web 2.3.1 Utilisation des Perspectives et Vues standard d’Eclipse Eclipse 3.1 propose en standard un nombre important de perspectives et de vues. Parmi elles, certaines sont particulièrement utiles pour le développement, ou pour certaines tâches précises : 2.3.1.1 Ouverture des perspectives et des vues L’ouverture des différentes perspectives s’effectue via le menu « Window Open Perspective ». Ce menu comporte en standard des « raccourcis » vers certaines perspectives usuelles, ainsi qu’une option « Other… » qui permet de sélectionner une perspective particulière à ouvrir. De la même façon, le menu « Window Show View » permet d’ouvrir différentes vues. Il propose des « raccourcis » vers certaines vues, ainsi qu’une option « Other… » permettant de sélectionner une vue particulière à ouvrir. Le menu « Window Customize Perspective… » permet de sélectionner les « raccourcis » présentés dans les menus « Window Open Perspective » et « Window Show View ». Il comporte 2 onglets : l’onglet « Shortcuts » : il permet de configurer différents raccourcis dans les menus. La liste déroulante « Sub-menus » propose plusieurs options permettant de configurer différents types de raccourcis : o l’option « New » : permet de configurer quelles options sont présentées pour la perspective courante, à la fois dans le menu « File New », et dans le menu contextuel « New » des vues de type « Explorateur ». o l’option « Open Perspective » : permet de configurer les perspectives à présenter sous forme de raccourcis dans le menu « Window Open Perspective » pour la perspective courante o l’option « Show View » : permet de configurer les vues à présenter sous forme de raccourcis dans le menu « Window Show View » pour la perspective courante l’onglet « Commands» : il permet d’activer ou de désactiver certaines options de la barre de menus et certains boutons de la barre d’outils. 2.3.1.2 Principales perspectives utilisées Les principales perspectives utilisées pour le développement sont : La perspective « Java » : elle intègre principalement la vue « Package Explorer » qui présente une vue arborescente des différents projets Dernière impression le 15/04/17 Page 21 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 dans l’espace de travail. Elle permet d’explorer la structure arborescente de chaque projet, et présente les différents fichiers source Java suivant la hiérarchie des packages auxquels ils appartiennent. La perspective « Resource» : elle intègre principalement la vue « Navigator » qui présente une vue arborescente des différents projets dans l’espace de travail. Elle permet d’explorer la hiérarchie des différents dossiers et fichiers d’un projet. La perspective « Debug » : utilisée pour le déboguage des applications, elle intègre plusieurs vues spécifiques comme la liste des points d’arrêt placés au sein des fichiers source, la pile des appels de méthodes en cours, et une vue permettant d’examiner le contenu des objets en mémoire à l’exécution. La perspective « CVS Repository Exploring » ; elle est utilisée pour définir des emplacements de référentiels CVS et permet d’importer localement un projet publié dans CVS en tant que projet dans l’espace de travail. La perspective « Team Synchronizing » : elle est utilisée pour les opérations de mise à jour des fichiers d’un projet entre l’espace de travail et le référentiel CVS associé au projet. 2.3.1.3 Principales vues utilisées Par défaut, chaque perspective intègre un certain nombre de vues. Il est cependant possible de personnaliser les vues affichées dans chaque perspective, en ajoutant ou en supprimant des vues. Les vues les plus utilisées sont les suivantes Les vues de type « Explorateur de projets » : notamment, la vue « Navigator » affichée par défaut dans la perspective « Resource », ainsi que la vue « Package Explorer » affichée par défaut dans la perspective « Java ». Les vues présentant des informations d’état sur l’environnement ou les projets : elles sont regroupées dans la catégorie « Basic ». Parmi ces vues, les plus utilisées sont : La vue « Problems » : elle liste les avertissements et erreurs de compilation présents dans les différents projets ouverts de l’espace de travail La vue « Tasks » : elle recense les items de type « tâche » présents dans les fichiers sources des projets ouverts. Un item de type « tâche » est simplement un commentaire Java débutant par le mot clé « TODO ». Exemple : Dernière impression le 15/04/17 public class ClientBean { public ClientBean() { // TODO : Add code to the constructor } } Page 22 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 La vue « Search » : elle présente les résultats d’une recherche effectuée au sein d’un ou plusieurs fichiers source. La vue « Console » : à l’exécution d’une application, elle affiche les différents messages générés par l’application. Les messages écrits sur la sortie standard (System.out) s’affichent en bleu, et les messages écrits sur la sortie d’erreur standard (System.err) s’affichent en rouge. La vue « Progress » : Eclipse 3.1 permet d’exécuter certaines tâches longues (comme la recompilation d’un projet) en tâche de fond, en sélectionnant l’option « Run in Background » dans les dialogues de progression. Les tâches s’exécutant en arrière-plan s’affichent alors dans la vue « Progress ». Cette vue permet également d’annuler une tâche de fond en cours d’exécution. Les vues spécifiques au débogage : parmi ces vues, on trouve notamment : La vue « Debug » : elle affiche la liste des différents threads des applications en cours d’exécution, ainsi que leur état (stoppé, actif, ou terminé). Pour chaque thread, la pile des appels de méthodes en cours est affichée sous forme arborescente La vue « Breakpoints » qui affiche la liste des points d’arrêt configurés dans les différents fichiers source de l’application. Cette vue permet de désactiver temporairement ou de supprimer des points d’arrêt. La vue « Variables » : au cours du débogage en mode pas-à-pas d’un thread, elle affiche la liste des variables (objets) accessibles à ce thread, et permet d’examiner le contenu de ces objets. Il est possible de naviguer à travers le « graphe objet » (hiérarchie de références vers d’autres objets) de chaque variable. La vue « Display » : en mode débogage pas-à-pas, elle permet d’entrer une expression Java, de l’exécuter et d’en examiner le résultat (objet résultant de l’exécution du code). La vue « Expressions » : similaire à la vue « Display », elle permet en outre de suivre l’évolution au cours du temps de l’évaluation d’une expression Java : les expressions ajoutées à la vue « Expressions » sont en effet réévaluées après l’exécution de chaque instruction. 2.3.2 Perspective J2EE et vues associées L’environnement de développement Eclipse 3.1 packagé est complété par un ensemble de plug-ins dédiés au développement J2EE et appelé « Web Tools Platform ». Le complément « Web Tools Platform » est basé sur une contribution d’IBM à Eclipse, et reprend presque à l’identique l’interface utilisateur de WSAD 5.1, facilitant ainsi l’apprentissage de l’outil. A la différence de WSAD qui comporte une perspective « Web » et une perspective « J2EE », le complément « Web Tools Platform » ne propose actuellement qu’une seule perspective « J2EE ». Dernière impression le 15/04/17 Page 23 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Pour afficher la perspective « J2EE » par défaut, sélectionner l’option de menu « Window Open Perspective Other… » et choisir « J2EE » dans la liste qui apparaît : Présentation par défaut de la perspective J2EE : L’icône de la perspective J2EE est similaire à celle utilisée dans WSAD. Dernière impression le 15/04/17 Page 24 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 La perspective J2EE comprend : la vue Explorateur de Projets (« Project Explorer ») : Cette vue correspond à la vue « Hiérarchie J2EE » de WSAD. Les projets de l’espace de travail y sont classés suivant leur nature : projets d’applications d’entreprise (« Enterprise Applications ») : regroupe les modules d’entreprise au format EAR (Enterprise application archive) projets clients d’applications («Application Client projects ») : regroupe les projets clients pour les composants EJB, les services Web, etc., qui peuvent être packagés sous forme d’archives JAR (Java archive) projets de connecteurs J2EE (« Connector Projects ») : regroupe les projets de connecteurs implémentant l’API J2C (Java2 Connector), et packagés sous la forme de modules RAR (Resource adapter archive) projets EJB (« EJB projects ») : regroupe les projets de composants EJB, qui sont packagés sous forme d’archives EJB-JAR projets d’applications Web (« Dynamic Web Projects ») : regroupe les projets d’applications Web, qui sont packagés en tant que modules Web au format WAR (Web application archive) projets de services Web (« Web Services ») : regroupe les projets de services Web développés suivant les normes SOAP et WSDL, et réalisés à travers les API Java JAX-RPC, JAXM et SAAJ. L’environnement de développement intègre des fonctions de génération de services Web pour le toolkit Apache Axis 1.1. autres projets (« Other Projects ») : regroupe les projets ne rentrant pas dans les catégories précitées. On y retrouve, entre autres : o les projets Java « simples » o les projets « Serveur » : ils contiennent les configurations de serveur pour le test et le déploiement d’applications Web. Ces projets correspondent aux « serveurs » qui apparaissent dans la vue « Servers » décrite ci-dessous. la vue Serveurs (« Servers ») : Cette vue correspond à la vue « Serveurs » de WSAD : elle liste les différents serveurs configurés dans l’environnement de développement à des fins de test, et permet d’effectuer différentes actions : créer un nouveau serveur associer/retirer des projets à un serveur Dernière impression le 15/04/17 Page 25 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 éditer la configuration d’un serveur démarrer/arrêter un serveur (exécution en mode normal ou « déboguage ») Pour l’instant cette vue est vide, car aucun serveur n’a encore été configuré. La création d’un serveur de test s’effectue typiquement lors de la création d’un nouveau projet. Configuration du Navigateur Internet à utiliser. Pour tester une application Web, on doit évidemment utiliser un navigateur Internet. A l’instar de WSAD, l’ensemble de plug-ins « Web Tools Platform » permet d’utiliser soit un navigateur Internet installé sur la machine, soit un navigateur Web intégré à l’environnement de développement. Configuration du Navigateur Web à utiliser : Lors de l’exécution d’une application Web, Eclipse ouvre automatiquement une fenêtre de navigateur Web affichant soit la page de démarrage de l’application exécutée. Le navigateur Web par défaut utilisé par Eclipse est paramétré dans le dialogue des préférences (menu « Window Preferences »), dans la catégorie « Internet Web Browser » : Note : par défaut, le navigateur Web intégré d’Eclipse est sélectionné. Eclipse détecte é automatiquement si les navigateurs Web Internet Explorer et/ou Mozilla Firefox sont installés sur la machine. Il est également possible de déclarer manuellement d’autres navigateurs (par exemple, le navigateur Opera) en cliquant sur le bouton « Add… ». Configuration d’Eclipse pour l’affichage d’une fenêtre de navigateur Web : Dans la terminologie Eclipse, le navigateur Web n’est pas une « vue », mais un « éditeur ». En tant que tel, il n’est pas présent dans la liste des vues accessibles depuis le menu « Window Show View ». Cependant, il est possible d’ajouter Dernière impression le 15/04/17 Page 26 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 un bouton dans la barre d’outils d’Eclipse permettant d’ouvrir une fenêtre du navigateur Web sélectionné dans les préférences : - Sélectionner l’option de menu « Window Customize Perspective… » Le dialogue « Customize Perspective » s’affiche. Sélectionner l’onglet « Commands » Dans la liste « Available commands groups » de l’onglet « Commands », scroller tout en bas, cocher l’option « Web Browser », et cliquer sur « OK » pour valider, comme indiqué sur l’illustration ci-après : Ceci a pour effet : d’ajouter un bouton « Open Web Browser » à la barre d’outils de la perspective courante : de rajouter une option « Web Browser » dans le menu « Window ». Les différentes sous-options de ce menu permettent de modifier le navigateur par défaut qui sera utilisé par Eclipse : soit le navigateur intégré (« Internal Web Browser »), soit un navigateur Internet « externe » Dernière impression le 15/04/17 Page 27 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 (Internet Explorer, Mozilla Firefox, ou tout autre navigateur configuré dans les préférences). Dernière impression le 15/04/17 Page 28 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 3. Cycle de développement d’un projet 3.1 Création d’un nouveau projet Web dynamique 3.1.1 Lancement de l’assistant de création de projet Web dynamique Cette étape peut s’effectuer : soit à partir de la barre de menu principal d’Eclipse : - sélectionner « File Project… » l’option New - Dans le dialogue « New Project », dérouler l’arborescence des assistants (« Wizards ») et sélectionner l’item « Web J2EE Web Project » - cliquer sur « Next >» soit à partir du menu contextuel de la vue « Project Explorer » dans la perspective J2EE : - sélectionner « Dynamic Projects » le nœud Web - effectuer un clic droit pour afficher le menu contextuel - sélectionner l’option « New J2EE Web Project » Dernière impression le 15/04/17 Page 29 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 3.1.2 Réglages du dialogue de l’assistant de projet Web dynamique Une fois l’étape précédente effectuée, le dialogue de création de projet Web dynamique s’affiche : 1. Entrer un nom pour le projet Web dans le champ « Name » (par ex. : « WebProj1 »). Attention : Il est fortement déconseillé d’utiliser des espaces dans le nom ! En effet, par défaut le nom du projet sera celui du contexte Web (première partie du chemin de l’URL d’accès au module) du projet. Note — message d’alerte [encadré en bleu sur la copie d’écran ci-dessus] : Une fois le nom du projet choisi, un message d’alerte apparaît dans le bandeau supérieur du dialogue. Ceci est du aux valeurs par défaut de certaines options qu’il nous faudra corriger en modifiant les réglages supplémentaires de l’assistant. En effet, l’assistant essaie automatiquement d’associer chaque nouveau projet Web dynamique à un projet d’application d’entreprise (EAR). Or, le serveur cible sélectionné par défaut (Tomcat 5.0 dans notre cas) n’est pas compatible avec les projets EAR, et c’est pour cette raison que le message d’alerte est affiché. 2. Cliquer sur le bouton « Show Advanced > » pour révéler les options supplémentaires de l’assistant et ajuster les réglages : - Tout d’abord, il convient de corriger la version de l’API Servlet sélectionnée : Dans le champ « Servlet Version », sélectionner la version « 2.3 » à la place de la version « 2.4 » affichée par défaut. - Vérifier ensuite que le serveur cible par défaut (champ « Target Server ») est bien « Apache Tomcat v5.0 » - Désélectionner la case « Add module to an EAR project » : le message d’alerte précité disparaît du bandeau supérieur. Dernière impression le 15/04/17 Page 30 sur 100 Note technique DEI - Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Vérifier que les cases « Add support for annotated Java classes » et « Use flexible project structure » sont bien désactivées. Racine du contexte : Noter que par défaut, le nom du projet Web (champ « Name » en haut du dialogue) est utilisé comme valeur par défaut pour le contexte racine de l’application Web (champ « Context Root » au bas du dialogue). Il est possible (mais fortement déconseillé pour des raisons d’organisation et de « cohérence ») d’utiliser une valeur différente du nom du projet pour la racine du contexte Web. Une fois les réglages effectués, cliquer sur « Finish » pour terminer la création du projet. 3.1.3 Génération de la structure du projet Web dynamique Le générateur de l’assistant commence alors la création de la structure du projet (organisation en répertoires et sous-répertoires) ainsi que les squelettes de certains fichiers). En particulier, le générateur doit créer un squelette pour le descripteur de déploiement Web du projet (fichier « web.xml » dans le sous-répertoire « WEB-INF » à la racine du contexte Web de l’application). Dernière impression le 15/04/17 Page 31 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Dernière impression le 15/04/17 Réf. : C-LABPR/IFD/05-169 V1.2.3 Page 32 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Pour créer ce descripteur de déploiement, le générateur de code doit accéder au fichier de définition XML du descripteur (fichier DTD ou schéma XML suivant les versions de J2EE). Pour ce faire, Eclipse doit accéder à Internet. Si le paramétrage du proxy n’a pas été effectué correctement, ou si les informations d’authentification sont invalides, Eclipse ne pourra pas terminer correctement la création du projet, et des messages d’erreur apparaîtront. 3.1.4 Structure du projet Web dynamique Une fois le projet Web dynamique créé, on peut examiner sa structure arborescente dans l’explorateur de projets (« Project Explorer ») : On note donc deux principaux sous-répertoires dans la structure du projet : JavaSource : ce dossier contiendra les différents fichiers source Java du projet (servlets et autres classes Java) organisés en packages. WebContent : ce dossier représente la racine du contexte Web de l’application et contiendra l’ensemble des ressources Web de l’application qui seront déployées sur le serveur : Dernière impression le 15/04/17 Page 33 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 o o o o 3.2 Réf. : C-LABPR/IFD/05-169 V1.2.3 les pages HTML et JSP, les images, les fichiers Javascript et les feuilles de style CSS : ces différentes ressources peuvent être créées à la racine du dossier « WebContent » ou bien dans des sous-répertoires spécifiques. les classes Java compilées, placées automatiquement dans le sous-répertoire WEB-INF/classes les bibliothèques Java utilisées par l’application, placées automatiquement dans le sous-répertoire WEB-INF/lib le descripteur de déploiement « web.xml », qui est représenté « en double » et accessible soit : - sous la forme d’une structure arborescente immédiatement au-dessous du nœud principal du projet « WebProj1 » (sousnœud « WebProj1 » dont l’icône porte le numéro de la version de l’API Servlet utilisée) - sous la forme d’un fichier placé dans le sous-répertoire WEBINF/ comme il est prescrit dans la norme J2EE. Développement du projet 3.2.1 Ajout de pages HTML et JSP Les pages JSP et HTML par défaut (« index.html », « index.jsp ») sont généralement placées à la racine du contexte Web de l’application (qui correspond au dossier « WebContent » du projet). Les autres pages peuvent être librement organisées, le plus souvent par « rubriques » classées dans des sous-dossiers. A la différence de WSAD, Eclipse WTP ne comporte pas encore d’assistants spécifiques à la création de pages HTML ou JSP (Eclipse WTP offre cependant des fonctions de colorisation syntaxique et de complétion semi-automatique de code). Pour créer une page HTML ou JSP : 1. Sélectionner le nœud « WebContent » dans l’explorateur de projets et afficher le menu contextuel par un clic droit. Sélectionner l’option « New File ». Une boîte de dialogue s’affiche. 2. Vérifier que le dossier parent (endroit où sera créée la page) est bien sélectionné dans la liste arborescente, et entrer le nom désiré pour la page (par ex. : « index.jsp ») dans le champ « File name ». Cliquer ensuite sur « Finish » pour valider. Dernière impression le 15/04/17 Page 34 sur 100 Note technique Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 DEI V1.2.3 3.2.2 Edition de pages HTML et JSP L’édition des pages JSP et HTML s’effectue en mode « source » uniquement, avec l’éditeur de texte Eclipse. Les seules aides disponibles sont : la colorisation syntaxique pour les éléments et attributs HTML et JSP l’assistance au contenu (« complétion ») pour les tags et attributs HTML et JSP la détection des erreurs de structure XML (tag mal fermé, etc..) et la détection des erreurs ou avertissements Java dans les pages JSP. Au sujet de la détection des erreurs Java cependant, 2 points à noter : o lorsqu’on utilise des inclusions de pages JSP, de « fausses erreurs » peuvent être signalées, car Eclipse ne réalise pas l’inclusion des JSP pour effectuer le contrôle d’erreurs o Les erreurs sont signalées uniquement dans l’éditeur (marques rouges pour les erreurs, et jaunes pour les avertissements). Les erreurs ne sont pas reprises dans la vue des erreurs (vue « Problems »). 3.2.2.1 Fragments de code Pour faciliter l’édition des pages JSP, on peut utiliser le mécanisme des « fragments » (« snippets ») qui permet de définir des « bouts de code » ou des « fragments de page » JSP que l’on peut ensuite réutiliser facilement par glisser/déplacer. Les « fragments » sont accessibles par la vue du même nom (« Snippets ») : A partir du menu « Window Dernière impression le 15/04/17 Show View Other… », sélectionner Page 35 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 « Snippets » dans la catégorie « Basic » : Les « fragments » sont regroupés par catégories. Par défaut, Eclipse propose une seule catégorie « JSP » rassemblant des éléments JSP souvent utilisés : Par exemple, pour insérer une directive « page » dans l’éditeur, à la position courante du curseur, on peut : - soit double-cliquer sur le fragment correspondant dans la fenêtre « Snippets » - soit glisser/déplacer le fragment JSP depuis la fenêtre « Snippets » vers l’éditeur Dernière impression le 15/04/17 Page 36 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Il est également possible de créer ses propres fragments réutilisables, et de les ajouter à des catégories personnalisées, de la manière suivante : 1. Sélection d’une région de texte à sauvegarder en tant que fragment (ici, la sélection représente le code HTML pour un tableau vide comportant une ligne et 2 colonnes) Afficher le menu contextuel sur la sélection (clic droit), et choisir l’option « Add to Snippets… » 2. Le fragment doit être sauvegardé dans une nouvelle catégorie. Une boîte de dialogue permet de choisir le nom de la catégorie à créer (ici : « HTML ») : 3. Une fois la catégorie sélectionnée, le dialogue « Customize Palette » apparaît. Cette boîte de dialogue permet de donner un nom à notre nouveau fragment, et éventuellement d’en modifier le contenu textuel : Dernière impression le 15/04/17 Page 37 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 - dans le champ « Name », remplacer la valeur par défaut (« Unnamed ») par un nom descriptif : « Tableau 2x1 » indiquant que ce fragment représente un tableau de 2 cases par une. Le nom modifié est également mis à jour dans le panneau de gauche qui regroupe l’ensemble des fragments classés par catégorie. - si nécessaire, il est possible de modifier le « texte source » du fragment qui est affiché dans la zone d’édition « Template Pattern » Dernière impression le 15/04/17 Page 38 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 4. 4. Une fois le dialogue validé, le nouveau fragment apparaît dans la fenêtre « Snippets » au sein de la catégorie nouvellement créée : Par la suite, il est possible de revenir dans le dialogue « Customize Palette » afin de modifier les noms, catégories, et contenus des fragments nouvellement créés. Pour afficher le dialogue « Customize Palette », sélectionner l’option « Customize… » dans le menu contextuel de la vue « Snippets ». Note : le dialogue « Customize Palette » permet uniquement de modifier les nouveaux fragments et catégories créés par l’utilisateur ; il ne permet pas de modifier les fragments existants dans la catégorie « JSP ». 3.2.2.2 Complétion dans les éléments HTML et JSP Les fonctionnalités de complétion sont accessibles à l’aide du raccourci clavier standard : « Ctrl + Espace ». Les 2 exemples ci-dessous illustrent les possibilités de complétion disponibles pour les tags HTML et JSP : Dernière impression le 15/04/17 Page 39 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 3.2.3 Création d’une Servlet Note préliminaire importante : pour pouvoir créer une Servlet, il faut impérativement que l’accès Internet via le Proxy soit activé et validé (utilisateur authentifié). Dans le cas contraire il est impossible de créer une servlet : l’assistant de création laisse les boutons « Next » et « Finish » grisés et persiste à afficher un message d’alerte incongru (« The name cannot be empty ») même si le champ « Name » n’est pas vide. Dans l’explorateur de projets, sélectionner l’icône du descripteur de déploiement immédiatement en dessous du nœud du projet, et choisir l’option « New Servlet » du menu contextuel. L’assistant de création de Servlet s’affiche. Entrer le nom « symbolique » de la servlet dans le champ « Name ». (ce nom « symbolique » sera utilisé comme valeur par défaut pour le nom de la classe de la servlet) Par défaut, l’assistant crée un mapping d’URL avec le nom de la servlet. Ce mapping est affiché dans la liste « URL Mappings ». Dans la plupart des cas, ce mapping par défaut ne conviendra pas, et il faudra donc le modifier. Important : vérifier que la case « Generate an annotated servlet class » est bien désactivée (l’activation de cette option provoquerait l’échec de la déclaration de la servlet et de son mapping dans le descripteur de déploiement, car elle requiert l’usage d’un outil annexe (XDoclet) qui n’est pas inclus dans le package). Dernière impression le 15/04/17 Page 40 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Pour modifier le mapping d’URL par défaut de la servlet : 1. Supprimer le mapping créé par défaut : sélectionner le mapping existant dans la liste « URL mappings » et cliquer sur « Remove » 2. Cliquer sur « Add… » pour créer le nouveau mapping d‘URL 3. Saisir le mapping d’URL désiré et cliquer « OK ». Pour un mapping « simple » comme ici par exemple, ne pas oublier de préfixer le mapping par un slash (« /hello ») 4. Le mapping créé apparaît maintenant dans la liste « URL mappings » Une fois le mapping d’URL modifié, cliquer sur « Next ». Le dialogue suivant de l’assistant permet de configurer les propriétés de classe Java de la servlet : Saisir un nom de package pour la servlet dans le champ « Java package », ou bien cliquer sur « Browse… » pour parcourir l’arborescence des packages existants dans le projet et en sélectionner un. Contrôler ensuite et modifier éventuellement le nom de la classe de la servlet dans le champ « Class Name ». Cliquer sur « Next » pour passer au dialogue suivant. Dernière impression le 15/04/17 Page 41 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Le dernier dialogue de l’assistant permet principalement de choisir les méthodes que l’on souhaite redéfinir pour la servlet : Par défaut, les méthodes « doPost » et « doGet » sont sélectionnées. Dans la plupart des cas cependant, on ne souhaite redéfinir que l’une ou l’autre. Une fois la ou les méthodes nécessaires sélectionnées (ici : « doGet » uniquement), cliquer sur « Finish » pour terminer l’assistant. Une fois la servlet créée, propriétés apparaissent déroulant le nœud descripteur de déploiement projet Web : ses en du du Quant au fichier source de la Servlet, il est placé dans le dossier « JavaSource » du projet, dans le package correspondant : Ajout de code à la servlet : Nous allons ajouter du code très simple à la servlet afin qu’elle retourne juste une simple page HTML avec un message de bienvenue avec la date et l’heure du jour : Double-cliquer sur le fichier de la servlet pour ouvrir l’éditeur, et modifier la méthode « doGet() » de la façon suivante : Dernière impression le 15/04/17 Page 42 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 - dans la signature de la méthode, remplacer les noms des arguments (« arg0 » et « arg1 ») par des noms explicites « req » pour ‘request’ et « res » pour ‘response’). Ces modifications sont indiquées en caractères gras surlignés en jaune. - entrer les nouvelles lignes de codes ajoutées qui apparaissent sur fond gris clair. protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // TODO Auto-generated method stub java.io.PrintWriter out = res.getWriter(); java.text.SimpleDateFormat fmtDate = new java.text.SimpleDateFormat(“EEEE d MMMM yyyy”); java.text.SimpleDateFormat fmtHeure = new java.text.SimpleDateFormat(“HH:mm”); java.util.Date now = new java.util.Date(); res.setContentType(“text/html”); out.println(“<html><head><title>Bienvenue !</title></head>”); out.println(« <body><h1>Bienvenue !</h1> ») ; out.print(« <p>Nous sommes le « ) ; out.print(fmtDate.format(now)); out.println(« , il est « ) ; out.print(fmtHeure.format(now)) ; out.println(“.</p></body></html>”); } 3.3 Tester un projet Au cours du développement, il est important de pouvoir tester l’application en la déployant sur… un serveur de test. A l’image de WSAD, Eclipse permet de paramétrer un ou plusieurs environnements de test, et de déployer un ou plusieurs projets sur ces environnements. A l’heure actuelle, le module « Web Tools Platform » d’Eclipse supporte en standard uniquement le serveur Apache Tomcat (versions 3.x, 4.x, et 5.x). Nous pouvons donc utiliser l’installation du serveur Tomcat 5.0 que nous avons paramétrée dans les Préférences (cf. § 1.2.2) 3.3.1 Exécution directe d’un projet avec déclaration d’un serveur de test à la volée L’option « Run As Run on Server … » du menu contextuel du projet ouvre un assistant qui permet de déclarer à la volée un environnement serveur (Tomcat dans notre cas) vers lequel le projet sera automatiquement publié ; le serveur sera ensuite automatiquement démarré, et Eclipse ouvrira un navigateur intégré affichant la page par Dernière impression le 15/04/17 Page 43 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 défaut de l’application. Dernière impression le 15/04/17 Page 44 sur 100 Note technique DEI - Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Sélectionner le projet à exécuter dans l’explorateur, et choisir l’option « Run As Run on Server … » du menu contextuel : L’assistant d’exécution sur le serveur s’affiche : - - contrôler que le champ « Host name : » contient bien la chaîne « localhost » (le serveur Tomcat est installé en local) Dans la liste hiérarchique des types de serveur (« Select the server type », sélectionner « Tomcat v5.0 Server » Eventuellement, on peut cocher la case « Set server as project default » si l’on souhaite conserver cette définition de serveur comme serveur de test par défaut pour le projet cliquer sur « Next >» Dernière impression le 15/04/17 Page 45 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Le dialogue suivant permet de configurer quels projets doivent être déployés sur l’environnement de test. Aucune action n’est ici nécessaire car notre projet a automatiquement été ajouté dans la liste des projets configurés sur le serveur (liste « Configured projects ») : Cliquer sur « Finish ». Eclipse lance automatiquement le serveur Tomcat. Les messages de démarrage apparaissent dans la vue « Console » (ci-dessous à droite). Surveiller l’apparition éventuelle de messages affichés en rouge qui indiqueraient des erreurs au démarrage du serveur : On remarque également dans la vue « Servers » ci-dessus à gauche que la configuration du serveur de test apparaît sous le nom « Tomcat v5.0 Server @ localhost ». Par ailleurs, au démarrage de l’application, Eclipse affiche automatiquement une fenêtre de navigateur Web intégré qui permet de tester l’application : Dernière impression le 15/04/17 Page 46 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Par défaut, le navigateur Internet affiche la racine de l’application Web, qui correspond à la page par défaut configurée pour l’application (ici, il s’agit de « index.jsp » Pour tester la servlet « HelloServlet », il suffit donc d’ajouter le mapping défini pour la servlet (« /hello ») à l’URL racine du contexte de l’application dans le champ d’adresse du navigateur, et de cliquer sur « Entrée » pour valider. La servlet est alors exécutée, et la page HTML résultante est affichée. 3.4 Déboguage d’une application sur le serveur A l’instar de WSAD, Web Tools Platform permet de lancer un serveur en mode « Debug » afin d’exécuter une application en mode pas à pas. Il est possible de placer des points d’arrêt à n’importe quel endroit du code Java (Servlets, ou autres classes), y-compris au sein des pages JSP. Démonstration : nous allons placer un point d’arrêt dans la page JSP d’accueil (index.jsp) un autre point d’arrêt dans la servlet « HelloServlet »., et exécuter l’application sur le serveur qui sera cette fois-ci lancé en mode déboguage. 1. Modification de la JSP et pose d’un point d’arrêt - Editer le fichier index.jsp de l’application et rajouter les lignes ci-dessous (sur fond inverse) : Dernière impression le 15/04/17 Page 47 sur 100 Note technique DEI - Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Cliquer dans le bandeau latéral gauche de la fenêtre de l’éditeur pour positionner un point d’arrêt au niveau d’une des lignes de la page JSP (dans l’illustration, le point d’arrêt se situe à la ligne contenant le scriptlet « <% i = i * 3 ; %> » 2. Pose d’un point d’arrêt dans la servlet HelloServlet Editer la servlet HelloServlet et positionner un point d’arrêt au début de la méthode doGet() comme illustré ci-dessous : 3. Déboguage de l’application sur le serveur Dans l’explorateur de projets, sélectionner le projet « WebProj1 ». Dans le menu contextuel, choisir l’option « Debug As Debug on Server… » Si le serveur précédemment utilisé n’a pas été défini comme serveur par défaut, un dialogue s’affiche pour choisir le serveur à lancer. Une fois le lancement du serveur effectué, Eclipse affiche un message d’alerte vous informant que ce type de lancement est configuré pour afficher la perspective « Debug », et vous demande si vous souhaitez ou non changer de perspective. Pour l’exemple, cliquer sur « Oui ». Déboguage de la page JSP Dans la perspective Debug, vous voyez que votre fichier index.jsp a automatiquement été ouvert dans l’éditeur, et que l’exécution est stoppée au niveau de la ligne sur laquelle a été positionné le point d’arrêt : Vous pouvez utiliser les fonctions habituelles d’Eclipse et les différentes vues de la perspective Debug pour avancer pas à pas dans l’exécution ou examiner et modifier le contenu des objets. Dernière impression le 15/04/17 Page 48 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Une fois l’exécution de la page JSP terminée, le résultat sera affiché dans la fenêtre du navigateur Web (« Web Browser »). Débogage de la servlet Dans la fenêtre du navigateur Web, entrer l’URL associée à la servlet, et cliquer sur « Entrée ». Lors de l’appel à la Servlet, Eclipse stoppe l’exécution au niveau du point d’arrêt précédemment positionné et ouvre automatiquement le fichier source de la servlet dans une nouvelle fenêtre d’éditeur : Arrêt/redémarrage du serveur La vue serveur offre un menu contextuel qui permet très facilement d’arrêter et de redémarrer (en mode normal ou en mode déboguage) le serveur : 3.5 Modification de la configuration d’un serveur La vue « Servers » permet également de modifier certains paramètres liés à la configuration d’Apache Tomcat, notamment les ports TCP à utiliser. Ainsi, par défaut, le port HTTP utilisé est le port 8080. Dernière impression le 15/04/17 Page 49 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Pour afficher et modifier ces paramètres, sélectionner le serveur dans la vue « Servers » et choisir l’option « Open » dans le menu contextuel. L’éditeur de configuration du serveur apparaît : On remarque que cet éditeur comporte 2 onglets (en bas à gauche). L’onglet « Modules » permet de voir et de configurer les modules Web qui sont déployés sur le serveur : Dernière impression le 15/04/17 Page 50 sur 100 Note technique DEI 3.6 Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Configuration des application Web propriétés de V1.2.3 déploiement d’une 3.6.1 Propriétés de déploiement et configuration du serveur Les options disponibles dans l’éditeur de configuration du serveur sont très limitées. En effet, l’essentiel des options de configuration sera spécifique à un projet, et notamment tout ce qui concerne : - les sources de données JDBC - les variables d’environnement publiées dans le contexte JNDI Avec les versions précédentes de Tomcat (3.x, 4.x), il était habituel de paramétrer les sources de données et autres propriétés spécifiques aux applications dans le fichier de configuration du serveur : les propriétés des applications étaient déclarées dans des nœuds « <Context > » dans le fichier « conf/server.xml » de Tomcat). Cependant, depuis la version 5.0.x de Tomcat, il est déconseillé de placer les éléments de configuration spécifiques aux applications dans le fichier de configuration du serveur. La procédure recommandée est désormais de créer un fichier «context.xml » dans le répertoire « META-INF » de l’arborescence WAR de l’application. C’est dans ce fichier qu’il faut déclarer le nœud XML « <Context> » propre à l’application ainsi que l’ensemble des paramètres liés à l’application (sources de données, variables JNDI). Au déploiement de l’application (format d’archive WAR ou structure arborescente « éclatée »), Tomcat recherche la présence d’un fichier « METAINF/context.xml ». Si ce fichier existe, les éléments fils du nœud <Context > sont traités pour configurer les paramètres définis par l’application. Le fichier « META-INF/context.xml » est ensuite copié vers le répertoire « conf/Catalina/localhost » de Tomcat, et renommé en : « NomDuModuleWeb.xml ». 3.6.2 Avantages liés à l’utilisation du fichier de contexte L’utilisation d’un fichier « context.xml » séparé par application présente plusieurs avantages par rapport à l’utilisation du fichier de configuration global « conf/server.xml » : Pas de « pollution » de la configuration du serveur : il n’ya plus aucune déclaration de contexte (aucun nœud « <Context> » dans le fichier « conf/server.xml », qui contient désormais uniquement les valeurs de configuration strictement relatives au serveur. Les informations de contexte sur les applications sont dans des fichiers « NomModuleWeb.xml »dans le répertoire « conf/Catalina/localhost » Dernière impression le 15/04/17 Page 51 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Isolation des paramétrages entre applications. De plus, lors de l’enlèvement d’une application, il n’est plus nécessaire de supprimer la configuration de cette application sur le serveur : l suffit de supprimer le fichier de contexte correspondant dans « conf/Catalina/localhost ». 3.6.3 Création d’un fichier de contexte Tomcat (META-INF/context.xml) Dans l’arborescence d’un projet, Eclipse le fichier de contexte doit apparaître dans l’arborescence du contenu Web : « WebContent\META-INF\context.xml » Nous allons créer une application de démonstration qui illustrera - - la configuration des propriétés de déploiement JNDI dans un fichier de contexte Tomcat la configuration de « variables d’environnement » et l’utilisation de « références de ressources » dans le descripteur de déploiement Web d’une application (WEB-INF/web.xml) pour lier des variables JNDI définies dans Tomcat au contexte JNDI de l’application la configuration d’une source de données MySQL dans le fichier de contexte Tomcat 3.6.3.1 Création du projet Web « ContextDemo » Créer un nouveau projet dynamique Web J2EE appelé « ContextDemo » avec les propriétés suivantes : version de l’API Servlet : « 2.3 » serveur cible : « Apache Tomcat 5.0 » 3.6.3.2 Création du fichier de contexte pour Tomcat - créer un sous-dossier « META-INF » dans le dossier « WebContent » du projet créer un nouveau fichier appelé « context.xml » dans le dossier « METAINF » Double-cliquer sur le fichier nouvellement créé pour l’ouvrir au sein d’un éditeur. Dans ce fichier « context.xml », il faut déclarer un élément racine « <Context> » qui contient 2 attributs : docBase : le nom du dossier racine de l’application Web path : l’URL de contexte Web de l’application Au sein d’un projet Eclipse, on utilise simplement le nom du projet pour l’attribut docBase, le plugin Tomcat se chargeant de spécifier le chemin absolu utilisé au déploiement en environnement de test. Pour l’attribut path, on utilise le nom de la racine du contexte de l’application Web Dernière impression le 15/04/17 Page 52 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 (normalement, c’est le nom du projet Web lui-même) préfixé par un slash (« / »). Dernière impression le 15/04/17 Page 53 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Le contenu « minimal » du fichier de contexte Tomcat pour notre application Web sera donc le suivant : <Context path= »/ContextDemo »> </Context> docBase= »ContextDemo » 3.6.3.3 Ajout d’une entrée d’environnement dans le fichier de contexte L’élément <Environment> permet de définir des valeurs JNDI dans le contexte JNDI de Tomcat qui sera associé à l’application. Les attributs obligatoires sont : name : le nom JNDI de la variable type : le type de la variable value : la valeur de la variable L’élément <Environment> ne possède pas de contenu et doit donc être fermé directement en mettant un slash à la fin du tag : <Environment … /> Exemple de définition de variable JNDI : Pour définir une variable JNDI de type « String » appelée « log/console » et dont la valeur est « on », nous ajoutons la ligne suivante (en gras) au fichier METAINF/context.xml : <Context docBase= »TestTomcatContext » path= »/TestTomcatContext »> <Environment name= »log/console » type=”java.lang.String” value=”on” /> </Context> Dernière impression le 15/04/17 Page 54 sur 100 Note technique Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 DEI V1.2.3 3.6.3.4 Ajout d’une définition de source de données JDBC dans le fichier de contexte Dans un fichier de contexte Tomcat, la déclaration d’une source de données JDBC s’effectue en 2 étapes : 1 – Définition d’une « ressource » de type « source de données » : On utilise l’élément « Resource » qui comporte 3 attributs obligatoires : - name : le nom JNDI de la ressource. Il s’agit d’un nom symbolique. Pour une source de données, il existe une convention de nommage : on doit utiliser le préfixe « jdbc/ » suivi du nom symbolique de la source de données, qui n’est pas forcément le véritable nom de la base de données. Par exemple, « jdbc/MySampleDB » peut être le nom symbolique d’une base appelée « sample » - type : le type de la ressource (classe ou interface Java). Pour une source de données, il s’agit de l’interface « java.sql.DataSource » - auth : mode d’authentification pour l’utilisation de la ressource. Pour une source de données, l’authentification est géré par le « conteneur » (c’est-à-dire : le serveur), et on doit donc utiliser la valeur « Container ». Note : l’élément « <Resource> » ne possédant pas de contenu, il ne faut pas oublier d’utiliser « /> » pour le fermer. Voici la définition à ajouter dans le fichier « context.xml » données appelée « jdbc/SampleDB » : <Resource pour déclarer une source de name=”jdbc/MySampleDB” type=”javax.sql.DataSource” auth=”Container” /> 2 – Définition des paramètres (propriétés) de la « ressource » : Pour définir les propriétés d’une ressource, on utilise l’élément « <ResourceParams> », qui possède un attribut « name » dont la valeur doit être identique à celle de l’élément « <Resource> » qu’il complète. Dans le corps de l’élément « <ResourceParams> », chaque propriété est définie par un élément « <parameter> qui précise le nom et la valeur de cette propriété (au moyen des éléments imbriqués « <name> » et « <value> »). Les noms des paramètres de définition d’une source de données sont standardisés, car ils sont utilisés pour la définition d’un pool de connexion qui sera créé par le serveur. Dernière impression le 15/04/17 Page 55 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Les paramètres du pool de connexion à définir sont les suivants : Paramètres de connexion au SGBD : Paramètre Description et valeur à employer factory nom complet de la classe de fabrique implémentant le pool de connexion. Avec Apache Tomcat, on utilise généralement l’implémentation « Apache DBCP » (Apache Data Base Connection Pool). La classe de fabrique correspondante est : « org.apache.commons.dbcp.BasicDataSourceFactory » driverClassName nom de la classe du pilote JDBC utilisé. Cette classe doit implémenter l’interface javax.sql.DataSource. valeur pour le pilote JDBC Oracle : « oracle.jdbc.driver.OracleDriver » valeur pour le pilote JDBC MySQL : « com.mysql.jdbc.Driver » url l’URL de connexion à la base de données : pour une base Oracle : « jdbc :oracle :thin :@<host> :<port> :<instance> » avec : <host> : nom DNS ou adresse IP du serveur Oracle <port> : port de connexion (par défaut : 1521) <instance> : nom de l’instance Oracle Exemple : « jdbc :oracle :thin :@localhost :1521 :TEST » pour une base MySQL : « jdbc :mysql ://<host> :<port> :<instance> » avec : <host> : nom DNS ou adresse IP du serveur MySQL <port> : port de connexion (par défaut : 3306) <instance> : nom de l’instance MySQL Exemple :« jdbc :mysql ://localhost :3306/TEST » username le nom d’utilisateur pour la connexion au SGBD password le mot de passe de l’utilisateur du SGBD Paramètres techniques de configuration du pool de connexion Paramètre Description et valeur à employer maxActive Nombre maximal de connexions qui pourront être créées dans le pool. (Note : La valeur « 0 » est à proscrire absolument, car elle ne fixe aucune limite) Il est conseillé de régler ce paramètre sur le nombre d’utilisateurs maximal envisagé en accès concurrent (minimum recommandé : 10). Il convient de vérifier que la valeur utilisée n’est pas plus élevée que le maximum admissible configuré sur le SGBD. maxIdle Nombre minimal de connexions à conserver actives dans le pool après utilisation sans les refermer. Minimum recommandé : 30% de la valeur de ‘maxActive’ (par exemple 3 si maxActive = 10). Maximum : valeur de ‘maxActive’. La valeur maximum ne doit être utilisée qu’en cas de prévision d’une charge constante sur l’application. Dernière impression le 15/04/17 Page 56 sur 100 Note technique DEI maxWait Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Délai maximal (en ms) d’attente de libération d’une connexion du pool par l’application cliente. Une exception est levée dans les cas où ce délai expire. La valeur « -1 » désactive ce contrôle (à utiliser avec précaution). La valeur minimale recommandée pour Oracle et MySQL est « 60000 » (60 sec.) Un exemple complet de définition d’une source de données avec ses paramètres est présenté dans la section suivante. 3.6.3.5 Contenu du fichier de contexte « complet » Voici le contenu « complet » du fichier de contexte de l’application d’exemple, qui inclut la définition d’une variable d’environnement, et d’une source de données : <Context docBase=”ContextDemo” path=”/ContextDemo” reloadable=”true”> <Environment name=”log/console” type=”java.lang.String” value=”on” /> <Resource name=”jdbc/MySampleDB” auth=”Container” type=”javax.sql.DataSource” /> <ResourceParams name=”jdbc/MySampleDB”> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:oracle:thin:@srv-oracle-test:1521:TEST</value> </parameter> <parameter> <name>username</name> <value>scott</value> </parameter> <parameter> <name>password</name> <value>tiger</value> </parameter> <parameter><name>maxActive</name><value>10</value></parameter> <parameter><name>maxIdle</name><value>3</value> </parameter> <parameter><name>maxWait</name><value>30000</value></parameter> </ResourceParams> </Context> Dernière impression le 15/04/17 Page 57 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 3.6.3.6 Edition du descripteur de déploiement Web Les variables d’environnement et ressources configurées sur le serveur sont destinées à être utilisées par l’application. Les dépendances de l’application vis-à-vis des ressources disponibles sur le serveur doivent être exprimées dans le descripteur de déploiement de l’application, à travers des d’éléments de type « référence d(environnement de ressource» (« resource environment reference »). Le contenu du descripteur de déploiement de l’application « ContextDemo » est présenté ci-dessous pour illustrer la façon dont doivent être déclarés les références vers les ressources configurées sur le serveur (les éléments correspondants apparaissent en gras). Pour éviter une confusion courante, on illustre la différence entre une référence d’environnement de ressource et une définition d’entrée d’environnement (l’éléement correspondant apparaît en italique) : Une entrée d’environnement permet de définir une valeur paramétrée dans le descripteur de déploiement de l’application, alors qu’une référence d’environnement de ressource permet de définir une liaison vers une valeur paramétrée dans la configuration du serveur lui-même. < ?xml version= »1.0 » encoding= »UTF-8 » ?> < !DOCTYPE web-app PUBLIC « -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN » « http ://java.sun.com/dtd/web-app_2_3.dtd »> <web-app > <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <resource-env-ref> <resource-env-ref-name>jdbc/MySampleDB</resource-env-ref-name> <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type> </resource-env-ref> <resource-env-ref> <resource-env-ref-name>log/console</resource-env-ref-name> <resource-env-ref-type>java.lang.String</resource-env-ref-type> </resource-env-ref> <env-entry> <env-entry-name>intValue</env-entry-name> <env-entry-value>33</env-entry-value> <env-entry-type>java.lang.Integer</env-entry-type> </env-entry> </web-app> Dernière impression le 15/04/17 Page 58 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 3.6.3.7 Création d’une page JSP de test Voici le contenu de la page de test (index.jsp) qui permet de récupérer les différentes valeurs définies (valeurs de l’entrée d’environnement et des références d’environnement de ressource déclarées sur le serveur). Noter que ces variables sont toutes placées dans le contexte JNDI local à l’application, accessible à travers le préfixe « java :comp/env/ » Par souci de simplification, cette page de test ne fait que convertir et afficher l’ensemble de ces valeurs sous forme de chaîne de caractères. <%@page language= »java » contentType= »text/html; charset=utf-8 » %> <html> <head><title>Démo Propriétés de déploiement JNDI</title></head> <body> <h1>Démo Propriétés de déploiement JNDI</h1> <pre> <% String[] jndiNames = { « java :comp/env/log/console », « java :comp/env/intValue », « java :comp/env/jdbc/MySampleDB » } ; javax.naming.InitialContext ic = null ; try { ic = new javax.naming.InitialContext(); } catch (javax.naming.NamingException e) { out.println(« Erreur à l’instanciation du contexte initial JNDI : « e) ; } + for(int i=0; i < jndiNames.length; i++) { try { String jndiValue = ic.lookup(jndiNames[i]).toString(); out.println(« Valeur de la propriété JNDI ‘ » + jndiNames[i] + “’ = “ + jndiValue); } catch (javax.naming.NamingException e) { out.println(« Erreur au lookup de la propriété JNDI ‘ » + jndiNames[i] + “’: “ + e); } } %> </pre> </body> </html> Dernière impression le 15/04/17 Page 59 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Le résultat de l’exécution de l’application est illustré ci-dessous : Adresse : http://localhost:8080/ContextDemo/ Démo Propriétés de déploiement JNDI Valeur de la propriété JNDI ‘java :comp/env/log/console’ = on Valeur de la propriété JNDI ‘java :comp/env/intValue’ = 33 Valeur de la propriété JNDI ‘java :comp/env/jdbc/MySampleDB’ = org.apache.commons.dbcp.BasicDataSource@1a9876e Dernière impression le 15/04/17 Page 60 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 3.6.4 Exemples de fichiers « context.xml » Exemple de contenu du fichier « META-INF/context.xml » l’application d’exemple « FWKSample » : utilisé pour <Context docBase= »FWKSample » path= »/FWKSample » reloadable= »true »> <Environment description= » » name= »edinat/logintimeout » override= »false » type= »java.lang.String » value= »10 » /> <Environment description= » » name= »edinat/mincount » override= »false » type= »java.lang.String » value= »0 » /> <Environment description= » » name= »edinat/invalidationtimeout » override= »false » type= »java.lang.String » value= »300 » /> <Environment description= » » name= »edinat/op4_courrierlibre/env » override= »false » type= »java.lang.String » value= »dev » /> <Environment description= » » name= »edinat/pwd » override= »false » type= »java.lang.String » value= »defaut » /> <Environment description= » » name= »edinat/user » override= »false » type= »java.lang.String » value= »defaut » /> <Environment description= » » name= »edinat/port » override= »false » type= »java.lang.String » value= »800 » /> <Environment description= » » name= »edinat/debug » override= »false » type= »java.lang.String » value= »5 » /> <Environment description=”” name=”edinat/host” override=”false” type=”java.lang.String” value=”10.12.0.191” /> <Environment description=”” name=”edinat/maxcount” override=”false” type=”java.lang.String” value=”2” /> <Environment description=”” name=”web/aliashttp” override=”false” type=”java.lang.String” value=”/FWKSample” /> <Environment description=”” name=”log/console” override=”false” type=”java.lang.String” value=”on” /> <Environment description=”” name=”log/level” override=”false” type=”java.lang.String” value=”debug” /> <Environment description=”” name=”ldap/gide/pwd” override=”false” type=”java.lang.String” value=”dlabpass” /> <Environment description=”” name=”ldap/gide/initctx” override=”false” type=”java.lang.String” value=”com.sun.jndi.ldap.LdapCtxFactory” /> <Environment description=”” name=”ldap/gide/host” override=”false” type=”java.lang.String” value=”dsgide1.serv.cdc.fr” /> <Environment description=”” name=”ldap/gide/user” override=”false” type=”java.lang.String” value=”uid=fwkuser,dc=cdc,dc=fr” /> <Environment description=”” name=”ldap/gide/port” override=”false” type=”java.lang.String” value=”17391” /> <Environment description=”” name=”ldap/gide/idappli” override=”false” type=”java.lang.String” value=” atalina” /> <Environment description=”” name=”ldap/gide/codeappli” override=”false” type=”java.lang.String” value=”GRES” /> <Resource name=”jdbc/MySampleDB” auth=”Container” type=”javax.sql.DataSource” /> <ResourceParams name=”jdbc/MySampleDB”> <parameter><name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter><name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter><name>url</name> <value>jdbc:oracle:thin:@dsdublin:1526:dtest_d</value> </parameter> <parameter> <name>username</name> <value>dei13</value> </parameter> <parameter><name>password</name> <value>dei13</value> </parameter> <parameter><name>maxActive</name> <value>5</value> </parameter> <parameter><name>maxIdle</name> <value>1</value> </parameter> <parameter><name>maxWait</name> <value>-1</value> </parameter> </ResourceParams> </Context> Dernière impression le 15/04/17 Page 61 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Autre exemple de fichier de contexte pour une application utilisant MySQL : <?xml version=’1.0’ encoding=’utf-8’?> <Context displayName=”RefAppGIN” docBase=”/daramis-dev/applis/AR/ntiers/RefAppGIN” path=”/RefAppGIN” reloadable=”true” workDir=”work/Catalina/localhost/RefAppGIN”> <Logger className=”org.apache.catalina.logger.FileLogger” directory=”/daramis-dev/applis/AR/ntiers/logs/” prefix=”RefAppGIN.” suffix=”.err” timestamp=”true”/> <Environment name=”ldap/gide/initctx” override=”false” type=”java.lang.String” value=”com.sun.jndi.ldap.LdapCtxFactory”/> <Environment name=”ldap/gide/port” override=”false” type=”java.lang.String” value=”17391”/> <Environment name=”log/console” override=”false” type=”java.lang.String” value=”false”/> <Environment name=”log/configuratorclass” type=”java.lang.String” value=”fr.icdc.dei.fwk.util.log.ConfigManagerConfigurator”/> <Environment name=”ldap/gide/host” override=”false” type=”java.lang.String” value=”dsgide1.serv.cdc.fr”/> <Environment name=”log/level” override=”false” type=”java.lang.String” value=”error”/> <Environment name=”log/rollingfile/size” override=”false” type=”java.lang.String” value=”1000000”/> <Environment name=”ldap/gide/codeappli” override=”false” type=”java.lang.String” value=”RA”/> <Environment name=”log/rollingfile/file” override=”false” type=”java.lang.String” value=”/daramis-dev/applis/AR/ntiers/logs/RefAppGIN.log”/> <Environment name=”log/rollingfile/status” override=”false” type=”java.lang.String” value=”on”/> <Environment name=”log/rollingfile/nb” override=”false” type=”java.lang.String” value=”10”/> <Environment name=”ldap/gide/idappli” override=”false” type=”java.lang.String” value=”543210”/> <Environment name=”ldap/gide/pwd” override=”false” type=”java.lang.String” value=”dlabpass”/> <Environment name=”ldap/gide/user” override=”false” type=”java.lang.String” value=”uid=fwkuser,dc=cdc,dc=fr”/> <Environment name=”web/aliashttp” override=”false” type=”java.lang.String” value=”/RefAppGIN”/> <Resource auth=”Container” name=”jdbc/RefAppDS” type=”javax.sql.DataSource”/> <ResourceEnvRef> <name>ldap/gide/basedn</name> <type>java.lang.String</type> </ResourceEnvRef> <ResourceParams name=”jdbc/RefAppDS”> <parameter><name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter><name>url</name> <value>jdbc:mysql://10.12.3.151:60018/ddaramis</value> </parameter> <parameter><name>username</name> <value>athos</value> </parameter> <parameter><name>password</name> <value>porthos</value> </parameter> <parameter><name>maxWait</name> <value>10000</value> </parameter> <parameter><name>maxActive</name> <value>90</value> </parameter> <parameter><name>maxIdle</name> <value>10</value> </parameter> <parameter><name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> </ResourceParams> </Context> Dernière impression le 15/04/17 Page 62 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 3.6.5 Notes complémentaires relatives à l’accès aux SGBD 3.6.5.1 Installation des bibliothèques de pilotes JDBC Installation des pilotes JDBC : Les bibliothèques de pilotes JDBC ne doivent généralement pas être placées dans le répertoire « WEB-INF/lib » du projet, mais dans le sous-répertoire « common/lib » du répertoire d’installation du serveur Tomcat (en effet, ces bibliothèques incluent souvent des interfaces du package « javax.sql », et Tomcat interdit pour raisons de sécurité le chargement de classes « système » appartenant aux packages « java » ou « javax » depuis le répertoire « WEB-INF/lib » d’une application). Utilisation exclusive de fichiers « . JAR » : dans le répertoire « common/lib », Tomcat charge uniquement les bibliothèques portant l’extension « .jar » ; il ne charge pas les fichiers « .zip ». Par conséquent, si on souhaite utiliser par exemple la bibliothèque de pilote JDBC « classes12.zip » pour Oracle, il faudra renommer le fichier en « classes12.jar » après l’avoir copié dans le répertoire « common/lib » (le format JAR est en réalité identique au format ZIP, ceci ne pose donc aucun problème). Les bibliothèques de pilote JDBC recommandés sont des pilotes de type 4 (« thin ») : Oracle 8i / 9i: « classes12.jar » (Oracle 8i) ou « ojdbc14.jar » (Oracle 9i) MySQL 4.1 : pilote MySQL Connector/J : « mysql-connector-java-3.1.7-bin.jar » 3.6.5.2 Notes spécifiques liées au paramétrage de sources de données MySQL Par défaut avec MySQL, le nombre maximal de connexions simultanées possibles est de 100. Lors du paramétrage d’un pool de connexion à MySQL dans le fichier « context.xml », il est donc important de définir pour le paramètre « maxActive » une valeur inférieure à 100 (90, pour conserver un peu de « marge » pour des connexions extérieures à l’application). Il est possible d’augmenter le nombre maximal de connexions simultanées acceptées par MySQL en spécifiant une valeur pour la variable système ‘max_connections’ dans le fichier de configuration du serveur MySQL : [mysqld] set-variable=max_connections=500 ____________________________ Sous un système Unix, on utilise couramment des valeurs comprises entre 500 et 1000 pour le paramètre « max_connections » pour des applications supportant des charges moyenne à forte. La valeur maximale utilisable dépend non seulement de la mémoire vive disponible (chaque connexion consomme une quantité de mémoire non négligeable), mais également de la qualité d’implémentation de la bibliothèque de threads disponible sur la plate-forme d’exécution. Ainsi, il est déconseillé sur certains systèmes de monter au-delà de 1500 (problème de stabilité), alors que MySQL AB indique que les distributions binaires compilées de façon statique pour Linux peuvent supporter jusqu’à 4000 connexions simultanées. Dernière impression le 15/04/17 Page 63 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 3.6.6 Problème de prise en compte du fichier de contexte Tomcat Dans certains cas précis, il se peut que le fichier « META-INF/context.xml » ne soit pas « reconnu » et « traité » par le plugin Tomcat d’Eclipse lorsqu’on déploie un projet sur un serveur Tomcat configuré dans Eclipse. Ceci empêche évidemment le bon fonctionnement de l’application. La cause de ce problème a pu être identifiée, et une procédure de correction efficace a été mise au point. 3.6.6.1 Symptômes La configuration définie dans « META-INF/context.xml » ne semble pas prise en compte à l’exécution de l’application sur le serveur Tomcat défini dans Eclipse. En revanche l’application fonctionne correctement si elle est déployée sous forme d’archive WAR sur un serveur Tomcat lancé en mode « autonome ». 3.6.6.2 Aperçu du processus de publication du plugin Tomcat dans Eclipse Au démarrage d’un serveur Tomcat, le plugin Tomcat intégré à Eclipse réalise les opérations suivantes : - énumération des projets associés à ce serveur pour chaque projet configuré, recherche d’un fichier « META-INF/context.xml » si un tel fichier est trouvé : extraction des nœuds fils de l’élément « <Context> » défini dans ce fichier pour les recopier dans le fichier « server.xml » du répertoire utilisé pour la configuration de lancement du serveur Tomcat. 3.6.6.3 Vérification de l’encodage du fichier de contexte Tomcat Les fichiers « context.xml » créés dans Eclipse sont normalement créés en utilisant l’encodage Unicode standard (UTF-8), qui est l’encodage par défaut en XML. Les fichiers encodés en UTF-8 peuvent comporter en option un en-tête (« byte-order mark ») constitué de 3 octets indiquant l’ordre d’écriture des séquences comportant plusieurs octets. (Pour rappel, en UTF-8 on code chaque caractère sur un nombre variable d’octets, de 1 à 6). Pour réaliser l’analyse du fichier context.xml (parsing du fichier pour extraction des nœuds fils de l’élément <Context>), le plug-in utilise le parser XML configuré par défaut dans Eclipse. Eclipse à son tour fait simplement appel au parser par défaut du JDK, qui se révèle, pour le JDK 1.4, être le parseur « Crimson ». Or, il se trouve que le parseur « Crimson » ne reconnaît pas les fichiers encodés en UTF8 qui comportent un en-tête « Byte-Order Mark » : l’analyse d’un tel fichier avec Crimson provoque la levée d’une exception, qui empêche le traitement correct du fichier context.xml … Ainsi, les valeurs définies dans le fichier de contexte ne sont pas propagées dans Tomcat comme elles le devraient, ce qui empêche évidemment le bon fonctionnement de l’application. Dernière impression le 15/04/17 Page 64 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 3.6.6.4 Résolution de ce problème : Pour résoudre ce problème, il faut vérifier si le fichier context.xml comporte un en-tête, et si oui, le supprimer (la suppression des informations d’en-tête n’entraîne pas de problème particulier). La procédure à suivre est la suivante : - dans l’explorateur de projets, sélectionner le fichier « WebContent/ META-INF/context.xml » du projet en question et cliquer sur l’option « Properties » du menu contextuel - dans la zone « Text File Encoding » au bas de la page de propriétés, cliquer sur l’option « Other » et sélectionner l’encodage « ISO-8859-1 » au début de la liste déroulante, puis cliquer sur « OK ». - Un message d’avertissement apparaît, vous informant d’un conflit entre l’encodage sélectionné et l’encodage d’origine du fichier : - Cliquer sur « Yes » pour passer outre ce contrôle et modifier l’encodage du fichier - Ensuite, double-cliquer sur le fichier « context.xml » pour l’ouvrir dans l’éditeur XML intégré à Eclipse. Surprise : on voit apparaître 3 caractères « parasites » au début du fichier !! Ces caractères sont en fait l’entête « Byte-Order Mark » de l’encodage UTF8: - Supprimer les 3 caractères parasites d’entête en début de fichier, et sauvegarder le fichier. Vous pouvez désormais republier l’application et relancer l’application sur le serveur Tomcat. Cette fois-ci, les éléments de configuration déclarés dans le fichier « context.xml » doivent être propagés dans la configuration de lancement du serveur. Dernière impression le 15/04/17 Page 65 sur 100 Note technique DEI 3.7 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Génération d’une archive WAR de l’application pour le déploiement Une fois l’application complètement testée en local, il convient de fabriquer une archive de l’application au format WAR (Web Application Archive) pour le déploiement en environnement d’intégration/ de recette / de production. Important : Pour le déploiement en intégration / recette / production, il ne faut pas inclure le fichier META-INF/context.xml de l’application dans l’archive WAR. Le fichier de contexte XML doit être fourni séparément. En effet, la plupart des paramètres de configuration doivent être adaptés pour le déploiement dans un environnement particulier. La procédure mise en place avec DPI est la suivante : (1) Livraison par le projet du module applicatif à DPI Le projet fournit 2 fichiers pour chaque module (application Web) devant être déployé : - NomDuModule.war : archive WAR du module sans le fichier METAINF/context.xml - NomDuModule.xml : fichier META-INF/context.xml du module, sous forme séparée (2) Premier déploiement du module applicatif par DPI : DPI effectue les actions suivantes pour un premier déploiement du module : - édition du fichier NomDuModule.xml pour adapter les paramètres à l’environnement cible avant déploiement - copie de l’archive NomDuModule.war vers le répertoire de déploiement propre à l’instance Tomcat du projet - copie du fichier de contexte NomDuModule.xml vers le sous-répertoire conf/Catalina/localhost de l’instance Tomcat du projet. (3) Redéploiement d’une nouvelle version d’un module applicatif livée par le pojet à DPI : - dans le cas où aucune modification de contexte n’est intervenue dans le fichier META-INF/context.xml de l’application, le projet doit simplement livrer la nouvelle version de l’archive WAR de l’applicaton. - Dans le cas contraire, le projet doit livrer à DPI la nouvelle version de l’archive WAR de l’application, ainsi que la nouvelle version du fichier de contexte « META-INF/context.xml », sous forme séparée. - Au moment du déploiement, DPI met à jour si nécessaire le fichier de contexte du module applicatif dans le sous-répertoire conf/Catalina/localhost de l’instance Tomcat du projet. Dernière impression le 15/04/17 Page 66 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 3.7.1 Fabrication de l’archive WAR à l’aide de l’assistant d’export Eclipse Web Tools Platform intègre un assistant d’export au format WAR. Cependant l’assistant ne permet pas de sélectionner les fichiers à inclure ou exclure : il sélectionne systématiquement l’ensemble des fichiers et répertoires du dossier « WebContent » du projet. Par conséquent, avant d’invoquer l’assistant d’export WAR, il faut impérativement déplacer ou renommer temporairement le fichier de contexte (WebContent/META-INF/context.xml) afin qu’il ne soit pas inclus dans l’archive. (On peut par exemple le renommer temporairement en « context.disabled ») Une fois s’être assuré que le fichier de contexte a été déplacé ou renommé, sélectionner le projet dans l’explorateur de projets J2EE et sélectionner l’option « Export WAR File » : Dans le dialogue d’Export, vérifier que le projet Web à exporter est bien sélectionné, Cliquer sur « Browse… » ou utiliser le champ texte « Destination : » pour saisir le nom à utiliser pour le fichier archive WAR. Cliquer sur « Finish » : l’archive WAR est automatiquement construite. Le fichier d’archive WAR peut alors être envoyé à DPI pour déploiement, en n’oubliant pas de joindre séparément le fichier de contexte XML de l’application que l’on aura renommé pour l’occasion d « context.xml » à « NomDuModule.xml ». 3.7.2 Fabrication de l’archive WAR à l’aide d’un script Ant Pour des cas plus complexes, il est possible de développer pour le projet un script Ant spécifique réalisant les étapes nécessaires à la fabrication de l’archive WAR. L’application de démonstration « FWKSample » contient un fichier script Ant de démonstration qui illustre : - la réalisation d’une archive WAR - le déploiement de cette archive en local sur un serveur Tomcat Les scripts d’exemple sont dans le répertoire BUILD (fichiers « build.xml » et « build.properties »). Dernière impression le 15/04/17 Page 67 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 3.8 Génération déploiement d’une archive EAR de V1.2.3 l’application pour le Si le serveur cible pour l’application est WebSphere, l’application doit être packagée sous forme d’archive EAR. Il faut alors créer un projet d’application d’entreprise dans Eclipse, avant de pouvoir y ajouter le ou le modules de l’application et de fabriquer une archive au format EAR. 3.8.1 Création d’un projet d’application d’entreprise et ajout d’un module Web Dans l’explorateur de projets, cliquer sur la catégorie « Enterprise Applications », et choisir l’option « New Enterprise Application Project » dans le menu contextuel. L’assistant de création d’application d’entreprise s’affiche. La création du projet va s’effectuer en 5 étapes (voir illustration ci-après) : Dernière impression le 15/04/17 Page 68 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 1) Nommage du projet et création d’un nouvel environnement serveur. Entrer un nom pour le projet dans le champ « Name » (ici : « TestEAR ») Il faut également associer le projet EAR à un serveur J2EE cible. Etant donné que Tomcat ne supporte pas le déploiement EAR, il faut déclarer un nouveau serveur J2EE « générique » en cliquant sur « New… » 2) Déclaration d’un serveur J2EE générique : première partie Le dialogue « New Server Runtime » s’affiche. Sélectionner « Basic J2EE Runtime Library » dans la liste arborescente des types de serveurs, et cliquer sur « Next ». 3) Déclaration d’un serveur J2EE générique : seconde partie Il convient d’indiquer dans le champ « Location » un répertoire correspondant auu répertoire des bibliothèques du serveur cible. Ici, nous utilisons un répertoire contenant la bibliothèque « j2ee.jar » du kit de développement J2EE 1.3.1 téléchargé à partir du site java.sun.com. Cette bibliothèque doit contenir les définitions nécessaires à la compilation des éléments J2EE constituant l’EAR. On termine la déclaration du serveur J2EE associé au nouveau projet en cliquant sur « Finish », ce qui nous ramène au dialogue de l’assistant de création de projet EAR. 4) Retour à l’assistant de création de projet EAR : étape suivante De retour dans le dialogue de l’assistant de projet EAR, cliquer sur « Next ». 5) Association de modules J2EE au projet EAR La dernière étape de l’assistant consiste à associer à notre projet EAR les autres projets correspondant aux modules J2EE qui feront partie de l’application d’entreprise. Sélectionner le projet « FWKSample », et cliquer sur « Finish » pour terminer la création du projet. De retour dans l’explorateur de projets, dérouler l’arborescence du projet EAR nouvellement créé : il contient uniquement le descripteur de déploiement « METAINF/application.xml » Dernière impression le 15/04/17 Page 69 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 En ouvrant le descripteur de déploiement, on constate qu’il contient bien une définition de module Web pour l’application Web « FWKSample ». 3.8.2 Exportation de l’application d’entreprise sous forme d’archive EAR : Dans l’explorateur de projets, sélectionner l’application d’entreprise « TestEAR » et sélectionner l’option « Export… EAR File » dans le menu contextuel. L’assistant d’exportation EAR s’affiche. Vérifier que le projet Web à exporter est bien sélectionné, Cliquer sur « Browse… » ou utiliser le champ texte « Destination : » pour saisir le nom à utiliser pour le fichier d’archive EAR. Cliquer sur « Finish » : l’archive EAR est automatiquement créée. 3.9 Déploiement des archives WAR ou EAR par DPI DPI réceptionne via l’outil DTI l’archive d’entreprise (fichier .EAR) constituant l’application et le dossier de déploiement de l’application. Le déploiement s’effectue comme décrit dans le document « D-SE13_TT_04146_Déploiement Application J2EE.doc ». Dernière impression le 15/04/17 Page 70 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 3.10 Gestion de dépendances entre projets 3.10.1 Dépendances entre projets Dans un projet Web on utilise typiquement des bibliothèques de fonctions additionnelles (frameworks divers, APIs et connecteurs techniques, etc.). Ces fonctionnalités tierces peuvent être : - fournies sous forme compilée, packagées en tant que bibliothèques au format JAR ajoutées au chemin de compilation du projet. - ou bien regroupées dans un ou plusieurs projets annexes dans l’espace de travail, contenant les fichiers sources de la bibliothèque. Le premier cas de figure présente les caractéristiques suivantes : pas de possibilité de débogage dans les bibliothèques utilisées par l’application la dépendance d’une application face à une bibliothèque est gérée en incluant l’emplacement du fichier de bibliothèque dans le chemin de compilation de l’application Le second cas de figure apporte une possibilité supplémentaire : il autorise un débogage « complet » de l’application, y-compris dans le code source des projets des bibliothèques de fonctionnalités tierces ou communes à plusieurs applications. cependant, il est nécessaire dans ce cas d’ajouter non pas un simple fichier JAR, mais le projet lui-même au chemin de compilation. On parle dans ce cas de dépendances projet. Les dépendances projet doivent être gérées à deux niveaux : au niveau développement : le compilateur doit pouvoir localiser les dépendances du projet vis-à-vis de classes se trouvant dans une bibliothèque JAR ou dans un projet annexe au niveau de l’environnement de test : l’environnement de développement doit pouvoir exécuter l’application sur l’environnement de test en configurant le serveur de test de façon à lui indiquer les dépendances de l’application visà-vis des bibliothèques ou projets annexes utilisés. WSAD 5.1 inclut deux fonctionnalités complémentaires dédiées à la gestion des dépendances entre projets, qui sont accessibles à partir de la boîte de dialogue « Propriétés » du menu contextuel d’un projet : - la rubrique « Chemin de compilation Java » contient un onglet « Projets » qui permet de cocher les projets de l’espace de travail dont dépend la compilation du projet actuellement sélectionné. Cette option gère donc les dépendances au niveau « compilation ». - la rubrique « Projets de Bibliothèque Web » permet de traiter un projet Java comme une bibliothèque JAR dans le dossier « WEB-INF/lib » d’un projet Web. Cette option permet donc de gérer les dépendances au niveau « exécution » sur le serveur de test. Dernière impression le 15/04/17 Page 71 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Quant à l’environnement de développement Eclipse 3.1 / Web Tools Platform, il possède des fonctionnalités similaires mais qui gèrent uniquement à l’heure actuelle l’aspect « compilation » des dépendances entre projets. Ces fonctionnalités sont accessibles à partir de l’option « Properties » du menu contextuel d’un projet : - la rubrique « Java Build Path » contient un onglet « Projects » qui permet d’ajouter les projets de l’espace de travail dont dépend la compilation du projet actuellement sélectionné. Cette option gère donc les dépendances au niveau « compilation ». - il existe également une rubrique « Project References » qui permet de définir quels autres projets de l’espace de travail sont « référencés » par le projet en cours. Malheureusement cette option n’a pour l’instant pas grande utilité, et ne prend pas en charge les dépendances au niveau « exécution » sur le serveur. Avec Eclipse 3.1 / Web Tools Platform, il est donc nécessaire de trouver une approche alternative à celle employée avec WSAD pour la configuration des dépendances entre projets. Cette approche nécessite la mise en œuvre d’une configuration particulière sur le serveur de test, et impose de suivre une procédure spécifique pour le lancement du serveur. Ces opérations seront étudiées à travers un exemple : 3.10.2 Exemple Nous allons étudier un exemple simple : - un projet Web (appelé « TestDep_Master ». Ce projet contiendra une servlet qui utilisera une fonctionnalité (un JavaBean) fourni au travers d’un autre projet - un projet Java simple (appelé « TestDep_Util » qui contiendra la fonctionnalité (le JavaBean) dont dépend le projet « TestDep_Master ». 3.10.2.1 Création du projet utilitaire « TestDep_Util » Pour créer ce projet Java simple, sélectionner l’option de menu « File New Java Project… » Saisir le nom du projet. Il est ensuite recommandé de sélectionner l’option « Create separate source and output folders » dans la rubrique « Project layout » afin qu’Eclipse utilise des répertoires séparés pour les fichiers sources et les fichiers compilés du projet. Dernière impression le 15/04/17 Page 72 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Créer ensuite une classe « UtilBean » dans un nouveau package « testdep.util » (ce JavaBean sera la fonctionnalité fournie par le projet « TestDep_Util » qui sera utilisée dans le projet « TestDep_Master »). Ajoutez un attribut « value » de type « String » à cette classe et générez les accesseurs (méthodes « getValue » et « setValue ») à l’aide du menu contextuel « Source Generate Getters and Setters… » de l’éditeur de source Java. 3.10.2.2 Création du projet principal de l’application Web : « TestDep_Master » Créez un nouveau projet J2EE dynamique appelé « TestDep_Master », en sélectionnant « Tomcat 5.0 » comme serveur cible et « 2.3 » comme niveau de spécification de l’AP Servlet. Nous allons maintenant créer une servlet qui va référencer un objet du type « UtilBean » défini précédemment. Créer une nouvelle servlet avec les propriétés suivantes : - Nom / Classe : TestServlet - package : testdep.servlet - mapping d’URL : /test - méthodes à redéfinir : doGet() Ajouter le code suivant à la méthode doGet() de la servlet. (Eclipse détectera des erreurs de compilation sur les portions de code reproduites ci-dessous en rouge) : testdep.util.UtilBean bean = new testdep.util.UtilBean(); bean.setValue(“Hello, world!”); java.io.PrintWriter pw = arg1.getWriter(); pw.println(“<html><body>”); pw.println(“<p>” + bean.getValue() + “</p>”); pw.println(« </body></html> ») ; Bien évidemment, Eclipse ne reconnaît pas le type testdep.util.UtilBean défini dans un autre projet. Il faut donc préciser qu’on fait référence au projet « TestDep_Util » dans le projet « TestDep_Master ». Pour indiquer que l’on souhaite faire référence au projet «TestDep_Util » : - Cliquer sur le projet « TestDep_Master » et sélectionner le menu contextuel « Properties ». - Dans la fenêtre des propriétés, sélectionner la rubrique « Project References », cocher la case correspondant au projet « TestDep_Util ». Dernière impression le 15/04/17 Page 73 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Avant de cliquer sur « OK », il convient aussi de régler le chemin de compilation du projet dans cette même fenêtre de propriétés, afin d’y ajouter le projet nouvellement référencé. Dans la partie gauche de la fenêtre de propriétés, sélectionner la rubrique « Java Build Path », puis l’onglet « Projects » dans la partie droite. Suivre ensuite les étapes suivantes : (1) cliquer sur le bouton « Add… » pour ajouter un nouveau projet (2) dans la fenêtre « Required Project Selection », sélectionner le projet « TestDep_Util » et cliquer « OK ». (3) le nom du projet apparaît désormais dans la zone de texte « Required projects on the build path ». Cliquer sur le bouton « OK » de la fenêtre de propriétés pour confirmer les changements. Dernière impression le 15/04/17 Page 74 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Une fois ces modifications réalisées, les erreurs de compilation disparaissent. 3.10.2.3 Exécution de l’application « TestDep_Master » sur un serveur de test : Créer un nouveau serveur de test de type « Apache Tomcat 5.0 », sur la machine « localhost ». Double-cliquer ensuite sur l’entrée du serveur pour afficher la fenêtre de configuration du serveur, et renommer le serveur avec le nom suivant : « TestDep Tomcat5 Server » Sélectionner ensuite le projet « TestDep_Master », choisir l’option « Run As… Run On Server », et sélectionner le serveur « TestDep Tomcat5 Server ». Dans la fenêtre du navigateur Web qui doit s’afficher au lancement, entrer l’URL suivante : http://localhost:8080/TestDep_Master/test A l’exécution de la requête, une exception est renvoyée : java.lang.NoClassDefFoundError : testdep/util/UtilBeantestdep.servlet.TestServlet.doGet (TestServlet.java :32) javax.servlet.http.HttpServlet.service(HttpServlet.java :689) javax.servlet.http.HttpServlet.service(HttpServlet.java :802) En fait, les options de « dépendances/ références » entre projets définies précédemment ne s’appliquent qu’à l’environnement de développement Eclipse, pour la compilation. Elles ne s’appliquent pas à la configuration du serveur, qu’il va donc nous falloir également adapter. 3.10.2.4 Modification de la configuration du serveur Avant tout, arrêter le serveur « TestDep Tomcat5 Server ». Sélectionner ensuite l’option du menu principal « Run Run… » qui va nous permettre d’éditer la configuration de lancement de notre serveur. Le dialogue de réglage des configurations d’exécution de projets Eclipse apparaît : ce dialogue permet de définir diverses configurations d’exécution pour différents types d’applications Java : applications autonomes, applications Swing ou SWT, applets, ainsi qu’applications J2EE. On retrouve en effet les définitions des serveurs Tomcat définis dans la vue « Servers », présentés sous forme arborescente dans la zone de gauche de la fenêtre (zone « Configurations : ») : Dernière impression le 15/04/17 Page 75 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Ce qu’il nous faut effectuer est modifier la configuration utilisée par Eclipse pour lancer notre serveur Tomcat, afin d’inclure dans le chemin de compilation du serveur le projet dont l’application dépend. Pour cela, il suffit de suivre la procédure suivante : (1) Dans la zone « Configurations : » à gauche, sélectionner le serveur « TestDep Tomcat5 Server ». Sélectionner ensuite l’onglet « Classpath » dans la zone de droite. puis sélectionner l’item « User Entries » dans la zone « Classpath : », et cliquer enfin sur le bouton « Add Projects… » à droite de cette zone (2) Le dialogue « Project Selection » apparaît. Cocher simplement le nom du projet à ajouter (ici : « TestDepUtil », puis cliquer sur « OK » pour confirmer et fermer ce dialogue. Le projet sélectionné est alors ajouté sous l’arborescence « User Entries : » de la zone « Classpath : » du dialogue principal. (3) Cliquer sur « Apply » en bas à droite pour sauvegarder les modifications apportées à la configuration du serveur Dernière impression le 15/04/17 Page 76 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 3.10.2.5 Procédure de lancement d’un serveur configuré avec des dépendances projet Important : Une fois la modification de la configuration du serveur effectuée, il ne faut surtout plus utiliser les fonctionnalités classiques de lancement du serveur à partir de la perspective J2EE, sous peine de perdre les modifications apportées à la configuration du serveur. Les options suivantes ne devront donc plus être utilisées pour démarrer le serveur dont la configuration a été modifiée : - option « Run As Run on Server…” du menu contextuel de l’explorateur de projets de la perspective J2EE - boutons et options de menu « Start », « Debug », et « Restart » de la vue « Servers » Le serveur devra uniquement être démarré à partir du menu « Run Run… » du menu principal (ou à partir de l’historique des lancements, comme discuté ci-après) Pour l’arrêt du serveur, on utilisera les boutons ou options d’arrêt des vues « Servers » ou « Console ». Premier démarrage du serveur : Le premier démarrage du serveur doit s’effectuer à partir de l’option du menu principal « Run Run… » . Dans le dialogue de réglage des configurations, il suffit alors de sélectionner la configuration du serveur dans la zone « Configurations : » à gauche (ici « TestDep Tomcat5 Server »), et de lancer le serveur en cliquant sur le bouton « Run » en bas à droite. Lorsque le serveur démarre, on constate cependant que son état est bien mis à jour dans la vue « Servers ». De la même façon, les messages de démarrage du serveur apparaissent toujours dans la vue « Console ». Dernière impression le 15/04/17 Page 77 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Test du programme : A la différence de l’option « Run As Run On Server… », qui affiche automatiquement une fenêtre de navigateur Web pointant sur l’URL de la ressource sélectionnée (page de démarrage de l’application, ou autre page ou mapping de servlet par exemple), le démarrage du serveur via l’option « Run Run… » ne déclenche pas automatiquement l’ouverture d(une fenêtre de navigateur Web. Pour tester l’application, il convient donc : - d’utiliser un navigateur Web externe et de le faire pointer vers l’URL associée à l’application (du type « http ://localhost:8080/NomDuModuleWeb ») - ou bien d’ouvrir une nouvelle fenêtre de navigateur Web intégré à Eclipse en cliquant sur le bouton en forme de globe terrien dans la barre d’outils d’Eclipse, puis de saisir l’URL correspondant à l’application dans la barre d’adresse de cette fenêtre : Ici, l’URL d’accès à la servlet de test de l’application est : http://localhost:8080/TestDep_Master/test Arrêt du serveur : L’arrêt du serveur peut être effectué indifféremment à partir de la vue « Servers » ou de la vue « Console » à l’aide des options de menu contextuel et boutons prévus à cet effet : Dernière impression le 15/04/17 Page 78 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Démarrage en mode de débogage : Le serveur peut également être démarré en mode débogage à partir de l’option de menu principal « Run Debug… » . Dans le dialogue de réglage des configurations, il suffit alors de sélectionner la configuration du serveur dans la zone « Configurations : » à gauche (ici « TestDep Tomcat5 Server »), et de lancer le serveur en cliquant sur le bouton « Debug » en bas à droite. Option de raccourci pour les démarrages suivants : Eclipse conserve un historique des lancements effectués en mode normal et en mode débogage, et offre des « raccourcis » pour relancer la dernière configuration utilisée, ou une configuration particulière de l’historique : - - les options « Run Last Launched » et « Debug Last Launched » du menu « Run » permettent de relancer la dernière configuration utilisée en mode normal ou débogage les sous-menus « Run History » et « Debug History » du menu « Run » permettent d’accéder à l’historique des derniers lancements de configuration effectués en mode normal ou débogage. Ces options peuvent également être actionnées plus rapidement par l’intermédiaire de boutons de la barre d’outils, qui permettent : - de lancer directement la dernière configuration utilisée, - ou d’accéder à l’historique des lancements pour chacun des deux modes (normal et débogage), et de sélectionner la configuration particulière à lancer. Dernière impression le 15/04/17 Page 79 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 3.11 Développement coopératif : utilisation de CVS Eclipse et WSAD intègrent des fonctionnalités exactement similaires pour le développement collaboratif. L’environnement de développement se connecte aux différents systèmes de contrôle de version (SCM) existants par l’intermédiaire de plug-ins : - plugin PVCS pour Merant PVCS - plugin CVS pour les référentiels CVS Pour le cycle de développement, il a été décidé de mettre en œuvre CVS pour les projets. Le développement coopératif se base sur l’utilisation d’un référentiel commun à tous les développeurs, ainsi que de référentiels privés pour chaque développeur : Référentiel partagé ou « commun » : Chaque projet disposera de son propre référentiel CVS. Un référentiel est un espace de données sécurisé qui permet le partage des fichiers du projet et gère un historique des modifications apportées par les membres de l’équipe de développement. Référentiel privé (Historique local d’Eclipse) : Chaque installation d’Eclipse sur les postes de développement intègre un « historique local » (« Local History ») qui conserve un historique des modifications effectuées en local sur les fichiers des différents projets de l’espace de travail. Synchronisation des modifications L’opération de synchronisation consiste à : - publier les modifications effectuées en local (dans l’historique local) vers le référentiel partagé - recevoir les modifications effectuées par d’autres développeurs à partir du référentiel commun, et mettre à jour l’historique local avec les nouvelles versions des fichiers modifiés - résoudre les éventuels conflits en cas de modification « simultanée » d’un même fichier par plusieurs développeurs : il faut alors « fusionner » les modifications effectuées par chacun afin d’aboutir à une version « unifiée » utilisable par tous. Dernière impression le 15/04/17 Page 80 sur 100 Note technique DEI 3.11.1 Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Configuration d’un référentiel CVS dans Eclipse Sélectionner la perspective Repository Exploring ») de l’explorateur de référentiels CVS (« CVS Dans la vue « CVS Repositories », afficher le menu contextuel (clic droit) et sélectionner l’option « New Repository Location ») pour configurer l’accès à un référentiel CVS. Le dialogue d’ajout de référentiel CVS s’affiche : Note : l’ensemble des informations nécessaires à la configuration de l’accès au référentiel sera communiqué au chef de projet après qu’il aura effectué la demande de création de référentiel CVS auprès de DPI. Le chef de projet devra préciser le nom de chaque utilisateur CVS à créer pour chaque projet, et transmettra les informations à chaque utilisateur. - entrer le nom de la machine CVS dans le champ « Host » - entrer le chemin du référentiel dans le champ « Repository path » - Entrer votre nom d’utilisateur CVS dans le champ « User », et votre mot de passe associé dans le champ « Password ». - sélectionner « pserver » dans champ « Connection type », le - cocher la case « Use port », et entrer dans le champ texte le numéro de port corespondant au référentiel CVS auquel vous voulez accéder. - cocher « Validate Connection on Finish » - cocher « Save Password » Dernière impression le 15/04/17 Page 81 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 - cliquer « Finish » : si les informations sont correctes, le nouvel emplacement de référentiel sera créé dans la vue « CVS Repositories » d’Eclipse. 3.11.2 Démarrage du projet : publication de la première version dans CVS Avant de pouvoir partager un projet, il faut bien entendu publier une première version dans le référentiel CVS. Prenons comme exemple le projet « WebProj1 » créé précédemment. Voici les différentes étapes à suivre pour partager ce projet : - Sélectionner le projet dans l’espace de travail. - Afficher le menu contextuel (clic droit) et choisir l’option « Team Share Project… » L’assistant « Share Project » s’affiche : Choisir l’option « Use existing repository location », et sélectionner dans la liste l’emplacement de référentiel dans lequel le projet doit être sauvegardé et partagé. Cliquer sur « Next ». Dans l’écran suivant, sélectionner « Use project name as module name » et cliquer sur « Next » : Dernière impression le 15/04/17 Page 82 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Eclipse recense alors les différents fichiers du projet, et affiche une nouvelle page de l’assistant permettant : - de sauvegarder (« commit » = « valider ») l’ensemble des fichiers, ou certains fichiers seulement, vers le référentiel CVS associé au projet - de marquer certains fichiers comme ne devant pas être sauvegardés dans le référentiel. (bouton « Ignore Selected Resources… » dans le bandeau supérieur droit de l’arborescence du projet, ainsi que l’option « Add to .cvsignore » du menu contextuel associé à la liste des fichiers du projet). Nous reviendrons sur cette fonctionnalité plus tard. Pour l’instant, il suffit de cliquer sur « Finish » pour lancer la sauvegarde des fichiers du projet dans le référentiel. Eclipse lance automatiquement l’assistant de validation (« Commit Wizard ») : L’assistant de validation repère immédiatement certains types de fichiers inconnus (ils correspondent en fait à des fichiers utilisés de façon interne par Eclipse Web Tools Platform pour gérer certaines propriétés du projet). : Pour chacun des types de fichier détectés, sélectionner l’option « ASCII Text » dans la colonne « Content ». En effet, chacun de ces types de fichiers correspond à du contenu XML, donc textuel. Cliquer ensuite sur « Next ». Dernière impression le 15/04/17 Page 83 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 L’assistant de validation vous propose ensuite d’associer des commentaires à la première version des fichiers sauvegardée dans CVS. Pour ajouter un commentaire commun (« première version ») à l’ensemble des fichiers sauvegardés : - - sélectionner le nœud principal (le nom du projet) dans la liste arborescente au bas de la fenêtre saisir le commentaire à utiliser dans le champ texte multi-ligne en haut de la fenêtre. Cliquer ensuite sur « Finish » La sauvegarde du projet dans le référentiel CVS s’effectue. Une fois cette opération terminée, on remarque que le nom du projet dans l’explorateur de projets est désormais précédé d’indicateurs (icône, et signe « > ») indiquant qu’il s’agit d’un projet partagé dans CVS. D’autre part, le nom d’hôte su référentiel CVS associé apparaît entre crochets après le nom du projet : (Note : la présence en triple du signe « > » dans la perspective J2EE est due à une anomalie d’affichage sans conséquence.) Dernière impression le 15/04/17 Page 84 sur 100 Note technique DEI 3.11.3 Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Organisation du référentiel CVS Si on déroule l’arborescence de l’emplacement CVS configuré, on remarque un premier niveau de hiérarchie correspondant à un classement des « modules » par type de version (un « module » CVS correspond à un « projet » dans Eclipse) : Notion de version sous CVS — Il est important de distinguer : - - Présentation arborescente des versions CVS dans l’explorateur CVS d’Eclipse : - - les numéros de versions des fichiers, attribués par CVS : ils correspondent en fait à des numéros de révision : à chaque fois qu’un fichier modifié est mis à jour dans le référentiel, CVS augmente automatiquement son numéro de révision. les étiquettes de versions : CVS permet d’apposer à chaque révision d’un fichier un label de version librement choisi. C’est d’ailleurs par ce mécanisme que CVS présente la version de travail des fichiers dans le nœud « HEAD ». En réalité, « HEAD » est simplement un label géré automatiquement par CVS. Nœud « HEAD » : les versions de travail des projets se trouvent dans ce nœud Nœud « Branches » : il est possible de créer plusieurs « branches » de développement d’un même module qui seront alors accessibles à travers ce nœud. Nœud « Versions » : comme indiqué plus haut, CVS permet d’étiqueter chaque version d’un fichier avec un label librement choisi. De cette façon, on peut apposer un label particulier à une version donnée des différents fichiers d’un projet afin d’identifier une « version » particulière d’un projet. (Exemple : la version « 1.0_DEV » du projet « ProjA » est composée de la version 1.2 du fichier HelloServlet.java, et de la version 1.4 du fichier index.jsp) Organisation des modules : A l’intérieur de chaque « nœud », on trouve les différents « modules » CVS, qui correspondent donc sous Eclipse à des projets. Chaque module est une structure arborescente pouvant contenir différents dossiers, sous-dossiers et fichiers. Module système « CVSROOT » :il s’agit d’un module propre à CVS qui contient les méta-informations du référentiel (informations sur le référentiel CVS luimême). Dernière impression le 15/04/17 Page 85 sur 100 Note technique DEI 3.11.4 Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Importation d’un projet publié dans CVS 3.11.4.1 Récupération d’un projet depuis un référentiel CVS Pour récupérer la version la plus récente d’un projet, il suffit de : dérouler le nœud « HEAD » et sélectionner le projet désiré sélectionner l’option « Check Out » à partir du menu contextuel. (Note : L’option « Check Out As… » permet de récupérer le projet et de l’enregistrer localement sous un autre nom dans l’espace de travail) L’exemple ci-contre illustre comment récupérer la dernière version du projet « FWKSample » sur le serveur CVS de test précédemment déclaré : Une fois le projet récupéré, le nouveau projet est visible dans la vue « Project Explorer » de la perspective J2EE. (Note : la présence en triple du signe « > » en regard du nom du projet est une anomalie sans conséquence qui affecte uniquement l’explorateur de projets de la perspective J2EE) 3.11.4.2 Corrections des erreurs après récupération d’un projet via CVS Après récupération d’un projet depuis CVS, il est possible qu’un grand nombre d’erreurs soit signalé. Ces erreurs peuvent être de plusieurs types : erreurs de validation sur des fichiers XML (DTD, XML Schema) : (par exemple, les fichiers de configuration du framework font référence à une DTD spécifique qui n’est en général pas incluse avec le fichier). Pour supprimer l’apparition de ces erreurs, désactiver l’option de validation des fichiers XML dans la rubrique « Validation » des préférences d’Eclipse. erreurs de chemin de compilation (« classpath ») incomplet invalide : ces erreurs peuvent être de plusieurs sources : Dernière impression le 15/04/17 ou Page 86 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 o Erreur de liaison d’une variable de bibliothèque : par exemple, il se peut qu’Eclipse ne parvienne pas à lier les bibliothèques système du JRE déclaré dans le projet à celles du JRE configuré pour le projet. Cette situation est signalée comme une erreur dans la vue « Problems », et la variable est suivie de la mention « unbound » entre parenthèses (« non liée ») dans l’explorateur de projets. Pour corriger cette situation : - sélectionner la variable mal configurée (ici, le JRE) - afficher le menu contextuel, et choisir l’option « Configure… » - La boîte de dialogue « Edit Library » s’affiche. Elle permet de sélectionner la valeur à utiliser pour la bibliothèque mal configurée. Pour le JRE par ex., faire pointer la variable vers un JRE adéquat configuré dans l’environnement de développement. : o Erreur de liaison d’une variable de chemin (« Classpath variable ») : Eclipse permet de définir des variables de chemin afin de faire pointer le projet vers une bibliothèque Java en utilisant un chemin relatif au lieu d’un chemin absolu. Ces « variables » sont définies au niveau des préférences de l’environnement de travail (rubrique « Java Build Path Classpath Variables »). Si l’on récupère un projet depuis CVS, il convient donc de vérifier si le projet ne déclare pas de variables spécifiques qui doivent être configurées dans l’environnement de développement. Les variables définies par un projet sont visibles dans la fenêtre des propriétés du projet (« Project Properties » accessible depuis le menu contextuel du projet), rubrique « Java Build Path », onglet « Libraries ». Dernière impression le 15/04/17 Page 87 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Exemple : supposons que le projet déclare une variable « JUNIT_HOME « désignant le répertoire contenant les bibliothèques Java de JUnit : Si la variable JUNIT_HOME n’est pas déclarée dans l’espace de travail de l’environnement de développement, une erreur sera signalée. Il conviendra alors de définir la variable requise par le projet au niveau des Préférences : Dernière impression le 15/04/17 Page 88 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 3.11.4.3 Configuration du Serveur utilisé par le projet récupéré via CVS Dans la plupart des cas, si on utilise Tomcat 5 avec Eclipse, il ne sera pas nécessaire de publier dans CVS le « projet serveur » associé au projet, comme il était habituel de le faire avec WSAD. En effet, avec Tomcat, la quasi-totalité des paramètres de configuration de l’application sur le serveur sera définie dans un fichier META-INF/context.xml intégré dans l’arborescence du projet. Ainsi, la configuration du serveur spécifique à l’application fera partie intégrale du projet. 3.11.5 Synchronisation avec le référentiel CVS Au cours du développement partagé d’un projet, il est important de régulièrement synchroniser l’espace de travail d’Eclipse avec le référentiel CVS, c’est-à-dire : de mettre à jour le référentiel CVS en y publiant les modifications effectuées en local de mettre à jour le projet dans l’espace de travail en récupérant les dernières modifications enregistrées par les autres membres de l’équipe dans le référentiel CVS. de résoudre les éventuels conflits résultant de la modification concurrente d’un même fichier par plusieurs membres de l’équipe. 3.11.5.1 Publication des modifications vers le référentiel Avec CVS, il est recommandé à chaque développeur de veiller à publier régulièrement ses modifications vers le référentiel. Ceci limite les risques de « conflits » liés à des mises à jour concurrentes et les incompatibilités entre fichiers sources modifiés par les uns et les autres. Une règle de bon sens doit être observée : ne jamais publier une version modifiée d’un fichier comportant des erreurs de compilation, ou dont la publication pourrait occasionner des erreurs de compilation au sein d’autres fichiers source. 3.11.5.2 Marquage visuel des fichiers modifiés ou nouvellement créés Dans les différentes vues d’explorateur de fichiers ou de packages, Eclipse appose une marque visuelle (un signe « > ») en regard des nouveaux fichiers créés, ou des fichiers modifiés par rapport à la dernière version récupérée sur le référentiel CVS. A la différence de PVCS, CVS ne fonctionne pas selon un mode de verrouillage exclusif des fichiers : plusieurs personnes peuvent travailler sur un même fichier en même temps. Lors de la mise à jour vers le référentiel, CVS détecte les éventuels conflits (modifications concurrentes) en vérifiant si la dernière version du fichier présente dans le référentiel correspond toujours à la version d’origine récupérée avant modification locale de ce fichier Dernière impression le 15/04/17 Page 89 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Par exemple : sélectionner « WebProj1 » créé précédemment. le Réf. : C-LABPR/IFD/05-169 V1.2.3 projet Modifier la page « index.jsp » dans le répertoire « WebContent ». Puis, créer une nouvelle page JSP (« page1.jsp ») dans ce même répertoire. Un signe « > » apparaît en regard des 2 fichiers JSP pour indiquer que ces fichiers représentent des modifications vis-à-vis de l’état du référentiel CVS. On remarque aussi qu’à la différence « index.jsp » qui porte le n° de version fichier « page1.jsp » ne comporte pas n° de version, puisqu’il n’a pas encore sur le référentiel. du fichier « 1.1 », le encore de été publié 3.11.5.3 Options de synchronisation avec le référentiel Pour synchroniser les fichiers du projet dans l’espace de travail en local et le référentiel, on utilise le menu contextuel « Team ».qui comporte 3 options gérant la synchronisation entre l’espace de travail et le référentiel CVS. La « portée » de ces différentes actions dépend de l’élément actuellement sélectionné dans l’explorateur de fichiers : - si l’élément est un projet, alors l’action de synchronisation avec le référentiel s’appliquera à l’ensemble des dossiers et fichiers du projet - si l’élément est un dossier, alors l’action de synchronisation avec le référentiel s’appliquera à l’ensemble des sous-dossiers et fichiers de ce dossier. - si l’élément est un fichier, alors l’action de synchronisation avec le référentiel s’appliquera uniquement à ce fichier. - il est également possible d’effectuer une sélection multiple dans l’explorateur de fichiers, en utilisant les méthodes de sélection standard (Shift+Clic et Ctrl+Clic) d Windows. Dans ce cas, l’action de synchronisation s’appliquera à l’ensemble des éléments sélectionnés (par exemple : 2 dossiers et 3 fichiers). Dernière impression le 15/04/17 Page 90 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 Les 3 actions relatives à la mise à jour des modifications sont donc : Synchronize with Repository : déclenche une « comparaison détaillée » entre chaque dossier/fichier de la sélection et la version des dossiers/fichiers équivalents présents dans le référentiel. Le résultat de ce « comparatif » est affiché dans une perspective dédiée : « Team Synchronizing Perspective » (« perspective de synchronisation avec le référentiel ») que nous étudierons plus loin. Commit… : cette action procède directement à une tentative de publication des fichiers/dossiers sélectionnés sans mener une « étude d’impact préalable » comme l’option précédente. Cette tentative de publication pourra uniquement aboutir s’il n’y a pas de « conflit », c’est-à-dire si personne n’a publié entretemps des changements sur les mêmes fichiers/dossiers dans le référentiel. Update : cette action est similaire à l’action précédente, mais est seulement disponible pour les fichiers modifiés. Elle ne s’applique pas aux nouveaux fichiers pour lesquels seules les 2 précédentes options sont disponibles. 3.11.5.4 Fonctionnalités de la perspective de synchronisation avec le référentiel Dans l’explorateur de projets de la perspective J2EE, dérouler l’arborescence du projet « WebProj1 », sélectionner le dossier « WebContent » et choisir l’option « Team Synchronize with Repository » du menu contextuel. Eclipse affiche un avertissement indiquant que la perspective associée à cette action est la perspective « Team Synchronizing » et demandant de confirmer le changement de perspective. La perspective de synchronisation s’articule autour de la vue « Synchronize », qui affiche la liste des fichiers et dossiers à synchroniser. Un groupe de quatre boutons dans le bandeau supérieur de cette vue contrôle le mode d’affichage des fichiers : Dernière impression le 15/04/17 Page 91 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Dernière impression le 15/04/17 Réf. : C-LABPR/IFD/05-169 V1.2.3 Page 92 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 De gauche droite, ces différents modes sont : mode « entrant » (« Incoming Mode») : Ce mode affiche seulement les fichiers du référentiel qui ont été modifiés depuis la version récupérée en local. Ce mode permet donc de visualiser les modifications publiées par les autres membres de l’équipe sur les fichiers du projet. mode « sortant » (« Outgoing Mode») : Ce mode affiche les fichiers du référentiel qui ont été modifiés par rapport à la dernière version publiée dans le référentiel. Ce mode permet donc de visualiser les modifications effectuées en local et qui doivent être publiées vers le référentiel. mode « mixte » entrant/sortant (« Incoming/Outgoing Mode») : Ceci est le mode par défaut sélectionné dans la vue « Synchronize ». Il affiche donc à la fois les fichiers sortants (modifications locales à publier) entrants et sortants (modifications externes à récupérer). mode « Affichage des conflits » (« Conflicts Mode») : Ce mode affiche la liste des fichiers qui sont en « conflit ». Un « conflit » peut se produire lorsque plusieurs personnes modifient le même fichier. Si une de ces personnes publie ses modifications dans le référentiel, les autres personnes ayant apporté des modifications et qui essaieront de publier ultérieurement leur nouvelle version du fichier se retrouveront en situation de conflit, car la dernière version dans le référentiel ne correspondra plus à la version qu’ils ont initialement récupérée. Chaque conflit sur un fichier doit être « résolu ». Pour résoudre un conflit, il faut comparer la version contenant les modifications locales avec la dernière version publiée dans le référentiel, et intégrer les changements de part et d’autre afin de les « fusionner » dans la version locale. La fusion s’opère avec un éditeur de texte spécifique intégré à Eclipse, qui affiche les différences entre les 2 versions d’un même fichier (« éditeur « Text Compare »). Une fois cette opération réalisée, on marque le fichier comme étant « fusionné » (option « Mark as Merged »). Dès qu’un fichier est marqué comme « fusionné », il disparaît de la liste des « fichiers en conflit » et se retrouve dans la liste des « fichiers sortants », d’où il peut être publié normalement vers le référentiel. Dernière impression le 15/04/17 Page 93 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 3.11.5.5 Visualisation des modifications sur les fichiers entrants ou sortants Eclipse intègre un éditeur de texte spécialisé (« Compare Editor ») qui signale visuellement les modifications entre deux versions d’un fichier. Cet éditeur permet de comparer les différences existant entre les versions locale (dans l’espace de travail) et distante (dans le référentiel) d’un même fichier. L’éditeur « Compare Editor » est accessible depuis n’importe quel mode d’affichage de la vue « Synchronize ». Pour l’ouvrir, il suffit de sélectionner un fichier dans la liste, puis de double-cliquer dessus ou de choisir l’option de menu contextuel « Open In Compare Editor ». Exemple : un double-clic sur le fichier « index.jsp » dans la vue « Synchronize » provoque l’ouverture d’une fenêtre « Text Compare ». Cette fenêtre affiche les modifications entre la versions locale du fichier (côté gauche), et distante (côté droit). Les différences entre les deux versions du fichier sont indiquées : - par des marques cliquables sur le côté droit de la fenêtre (à droite de l’ascenseur) - par des tracés (lignes, rectangles) dans les zones de texte qui aident à repérer les lignes modifiées, ajoutées ou supprimées, et leur correspondance dans l’autre fichier. (ici, on voit qu’un nouveau paragraphe a été ajouté dans la version locale du fichier index.jsp). Dernière impression le 15/04/17 Page 94 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 3.11.5.6 Synchronisation entre l’espace de travail et le référentiel La synchronisation s’effectue à partir des modes « mixte » ou « entrant » et « sortant » de la vue « Synchronize ». - il est possible de publier / mettre à jour des fichiers de manière individuelle en utilisant les options « Commit… » et « Update » des menus contextuels. - Il est également possible de mettre à jour / publier automatiquement l’ensemble des changements dans l’arborescence sélectionnée en utilisant les boutons « Update All Incoming Changes… » et « Commit All Outgoing Changes » en mode « mixte » (« Incoming/Outgoing mode »). Boutons de publication / mise à jour groupée de la barre d’outils de la vue « Synchronize » en mode mixte (« Incoming/Outgoing mode » : Mode entrant (« Incoming mode») : mise à jour individuelle d’un fichier (ou d’un dossier ou d’une sélection de fichiers/dossiers) depuis le référentiel : Dernière impression le 15/04/17 Page 95 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Mode sortant (« Outgoing mode ») : publication individuelle d’une nouvelle version d’un fichier (ou d’un nouveau fichier) vers le référentiel : 3.11.5.7 Résolution d’un conflit Exemple : on souhaite publier une nouvelle version de la page « index.jsp » à laquelle on a ajouté un nouveau paragraphe. Entre-temps cependant, un autre utilisateur a modifié cette page (suppression de la partie affichant la valeur d’une variable « i »), et a publié sa nouvelle version dans le référentiel. Lorsqu’à notre tour, nous essayons de publier notre version modifiée dans le référentiel, Eclipse détecte que la version d’origine sur laquelle nous nous sommes basés a été remplacée depuis par une autre version plus récente. Dernière impression le 15/04/17 Page 96 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Réf. : C-LABPR/IFD/05-169 V1.2.3 Supposons que l’on décide en fait de supprimer la section de texte à l’origine du conflit. Ceci ne suffit pas à « résoudre » le conflit, car CVS et Eclipse n’ont aucun moyen de « deviner » que les modifications apportées permettent de le résoudre. Une fois les modifications nécessaires effectuées, il faut donc signaler la résolution du conflit à Eclipse en marquant le fichier en conflit comme fusionné. Pour cela, sélectionner l’option « Mark as Merged » dans le menu contextuel du fichier. Si les modifications apportées n’ont pas encore été sauvegardées, Eclipse affiche le dialogue « Save Resources ». Cliquer « OK » pour sauvegarder les modifications apportées et valider le changement du fichier de l’état « en conflit » à l’état « fusionné ». Le changement d’état du fichier est visible immédiatement : le fichier « index.jsp » porte désormais l’icône « fichier sortant » et est affiché uniquement dans les modes d’affichage « mixte » et « sortant ». A ce stade, avant qu’un autre conflit potentiel ne survienne, il est urgent de sauvegarder la version fusionnée du fichier !! Pour cela, sélectionner l’option « Commit » du menu contextuel. Dans le dialogue « Commit files » ajouter un commentaire explicatif puis valider. Dernière impression le 15/04/17 Page 97 sur 100 Note technique Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 DEI V1.2.3 4. Développement avec le framework DEI 4.1 Configuration des propriétés JNDI liées à l’utilisation du framework DEI Liste des Variables d’environnement à définir selon le module employé : Module Framework : HTTP taglib Description Alias HTTP utilisé par la bibliothèque de tags pour la localisation des ressources statiques Nom référence Web/aliashttp Framework : persistence Paramétrage d’une DataSource de type « Server Managed DataSource », de nom applicatif « ma_source » Nom JNDI de la data source niveau de trace du pool de connexions Nom d’utilisateur pour la création des connexions du pool SGBD (si différent de l’utilisateur déclaré au niveau de la source de données) Mot de passe de l’utilisateur ds/ma_source/debug ds/ma_source/user Framework : log Niveau de log des appenders : « debug », « error », « fatal », « info », « warn » Activation/désactivation de l’appender console (« on » ou « off ») Activation/désactivation de l’appender rollingfile (« on » ou « off ») Appender « rollingfile » : Répertoire de stockage des fichiers Appender « rollingfile » : Taille maximum des fichiers Appender « rollingfile » : nombre de fichiers à utiliser Activation de l’appender userfile (on ou off) Appender « userfile » : répertoire de stockage des fichiers Activation de l’appender mail (on ou off) Surcharge du niveau de log pour l’appender mail (debug, error, fatal, info, warn) Appender mail : nom DNS du serveur SMTP Appender mail : émetteur des messages Appender mail : sujet des messages Appender mail : destinataire des messages log/level Mail Paramétrage des propriétés du serveur mail Nom du serveur DNS pour un envoi au protocole SMTP Utilisateur pour connexion au serveur SMTP Mot de passe de l’utilisateur mail/smtphost mail/user mail/pwd Edinat Paramétrage du pool de connexion au module Bdoc-Web Nom DNS du serveur Edinat Port utilisé par le serveur Edinat Nom d’utilisateur pour connexion au serveur Edinat Mot de passe de l’utilisateur Nombre maximum de connexions du pool Nombre minimum de connexions du pool Délai d’expiration lors d’une tentative de connexion (en secondes) edinat/host edinat/port edinat/user edinat/pwd edinat/maxcount edinat/mincount edinat/logintimeout Dernière impression le 15/04/17 ds/ma_source/jndi ds/ma_source/pwd log/console log/rollingfile log/rollingfile/dir log/rollingfile/size log/rollingfile/nb log/userfile log/userfile/dir log/mail log/mail/level log/mail/host log/mail/from log/mail/subject log/mail/to Page 98 sur 100 Note technique DEI Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 Module Edinat Paramétrage de l’environnement pour une édition d’alias « alias » LDAP Paramétrage d’un annuaire LDAP de nom LDAPName Framework : Divers Réf. : C-LABPR/IFD/05-169 V1.2.3 Description Nom référence Délai d’expiration d’une connexion en cours d’utilisation (en secondes) Description du pool de connexion Niveau de trace du pool Nom de l’environnement (production, recette, dev, etc.) utilisé pour affichage au sein de l’édition. La partie « alias » dans la clé doit être nommée d’après le nom de la scène logique ou le nom du document. edinat/invalidationtime out Edinat/description edinat/debug edinat/alias/env Nom DNS du serveur LDAP Port d’écoute du serveur LDAP Nom d’utilisateur pour la connexion au serveur LDAP Mot de passe de l’utilisateur Nom de la classe de fabrique pour la construction du contexte initial « InitialContext » Identifiant de l’application (GIDE) Code application (GIDE) ldap/ldapname/host ldap/ldapname/port ldap/ldapname/user ldap/ldapname/pwd ldap/ldapname/initctx Nom DNS du Reverse Proxy (Si présent) Port du Reverse Proxy fwk/reverseproxyhost Dernière impression le 15/04/17 ldap/gide/idappli ldap/gide/codeappli fwk/reverseproxyport Page 99 sur 100 Note technique DEI Réf. : C-LABPR/IFD/05-169 Guide Opératoire de Développement avec Eclipse 3.1 + Web Tools Platform 1.0 V1.2.3 5. Historique des versions Version / Révision Date Commentaire Chapitre Origine V0.1 28/04/2005 Création du document V0.2 * LD v0.3 11/05/2005 Corrections après remarques de M. Guillemette et D. Duarte 17/05/2005 Draft final pour validation * LD V1.0 19/05/2005 Version 1.0 en diffusion * LD V1.1 27/05/2005 Version 1.1 en diffusion LD V1.2 02/06/2005 Version 1.2 en diffusion 3.5, 3.6, 3.10, 3.11 2.2.3, 2.2.6, 3.1 V1.2.1 v1.2.2 v1.2.3 v1.2.4 LD LD 04/06/2005 Partie CVS : création d’un nouvel emplacement de référentiel : définir le port spécifique associé au référentiel à la place de l’option « use default port » 01/07/2005 Corrections LD 08/11/2005 Correction dans la configuration des préférences de l’historique local Précision pour la partie création d’application Web et de servlets : ne pas utiliser les options relatives aux projets flexibles, et aux annotations XDoclet. en cours corrections typos etc LD Dernière impression le 15/04/17 LD LD Page 100 sur 100