Aller au menu - Aller au contenu

Icône Premiers pas

Mise à jour : 24/07/2009
Difficulté : Facile Facile Creative Commons BY-NC-SA
10 160 visites depuis 7 jours, dont 781 sur ce chapitre classé 25/786
Maintenant que nous avons nos outils, nous allons pouvoir rentrer dans le vif du sujet ! :)

Rappelez-vous comment fonctionnent les applications web : requête, traitement, réponse.
Nous allons voir comment bien commencer dans l'aventure JEE, mais progressivement car, avant de commencer à programmer, vous allez avoir besoin de précisions sur la façon dont Tomcat va gérer nos applications !

Bon ben, qu'est-ce qu'on attend ? ^^
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Création

Nous allons faire simple (comme d'habitude...).
Avant de commencer à coder, nous allons tout d'abord voir comment créer un projet JEE - ceci n'est pas anodin - et ensuite, comment mettre notre application sur notre serveur (dans Tomcat !), tout ça pour pouvoir admirer notre travail.

Lors du dernier chapitre, je vous avais montré que le plug-in Tomcat permettait de créer un "projet Tomcat" : c'est exactement ce que nous allons faire ! :)

Faîtes "File > new > Other", déroulez le menu "Java" et choisissez un "Projet Tomcat" :

Image utilisateur


Nommez-le "Test" :

Image utilisateur


Cliquez sur "Finish" pour terminer la création du projet.

Wahou ! Qu'est-ce que c'est que tout ça ?


Image utilisateur


Regardez dans votre espace de travail, vous devriez avoir un dossier "Test" avec ceci dedans :

Image utilisateur


En fait, les plus curieux ont sûrement jeté un rapide coup d'oeil aux dossiers se trouvant dans le répertoire "webapps" dans Tomcat...
Ceux-ci ont dû s'apercevoir que les dossiers présents n'étaient pas tous les mêmes, à l'exception du dossier "WEB-INF". En effet, ce dernier est le coeur d'une application JEE ! :waw: Tout repose sur lui et sur son contenu...
Les autres dossiers sont facultatifs et peuvent changer selon les besoins du programmeur. Dans notre cas nous avons des dossiers "src" et "bin", dossiers qui doivent vous être familiers... ^^
Eh oui, un dossier pour les sources Java et un pour les .class !

Pour schématiser un peu ce que contient un serveur d'application, voici un petit schéma :

Image utilisateur


Concernant le contenu du dossier "WEB-INF", qui doit bien vous intriguer maintenant, nous allons y arriver très vite ! Dès le chapitre prochain en fait... ;)


Bon, vous venez de créer votre premier projet Tomcat. Nous allons voir maintenant comment le déployer !

Déploiement

Quoi ?

Je savais que ce mot allait vous perturber ! ^^
"Déployer" une application JEE veut seulement dire que nous allons la mettre en place dans notre conteneur de servlets : Tomcat !
Après cette manipulation, nous pourrons aller interroger notre serveur d'applications pour voir le rendu de nos pages web...

Tu n'arrêtes pas d'appeler Tomcat un "conteneur de servlets"... Tu ne pourrais pas expliquer d'avantage ?

Je pourrais, mais je préfère vous faire faire une servlet avant de vous expliquer ceci... Vous comprendrez mieux, je pense.

Vous allez voir que mettre en place une application JEE est tout simple : un simple copier-coller suffit !
Il existe d'autres façons de faire, mais nous n'en parlerons que plus loin dans le tuto...

Bon, si vous ne l'avez pas encore fait, démarrez votre serveur Tomcat, ce qui devrait vous donner ceci dans la console d'Eclipse :

Image utilisateur


Et rendez-vous dans la partie d'administration, pour mémoire c'est ici :

Image utilisateur


Vous voici devant le listing des applications présentes dans Tomcat !

Image utilisateur


Nous aborderons plus loin les éléments présents en fin de page, de même pour les options qu'offre le listing des applications Tomcat !


Maintenant, le but du jeu est d'importer notre travail dans Tomcat afin de pouvoir visualiser les pages créées et voir apparaître notre (nos) application(s) dans le listing ci-dessus.

Rendez-vous dans votre espace de travail Eclipse, copiez le dossier "Test" correspondant à votre application JEE vide, allez dans le dossier d'installation de Tomcat et collez le dossier dans le répertoire "webapps".

Vous devriez avoir ceci dans le dossier "webapps" :

Image utilisateur


Maintenant, rendez-vous dans l'administration de Tomcat que vous avez déjà ouverte tout à l'heure.
Si vous aviez éteint votre navigateur ou redemandé la page d'administration, vous devriez avoir ceci sous les yeux :

Image utilisateur


Si vous n'avez pas ceci, rafraîchissez la page avec la touche F5.


Il ne vous reste plus qu'à cliquer sur le lien correspondant à notre projet dans l'administration pour y accéder, et voilà :

Image utilisateur


Ouh là ! Qu'est-ce que c'est que ça ?

Eh oui ! Nous avons déployé un projet vide... Il n'existe aucune page web à afficher...
Du coup, la requête http de notre navigateur vers notre serveur a retourné une erreur : erreur 404.
Les gens qui ont tendance à fouiner sur le web ont dû souvent voir ce genre d'erreur. Il en existe plusieurs en fait, voici un petit listing des codes renvoyés par un serveur :
  • Code 1XX, réponse provisoire :
    • 100 : OK pour continuer,
    • 101 : le serveur a changé de protocole ;
  • Code 2XX, réussite :
    • 200 : (ok) la requête a été traitée avec succès,
    • 201 : (object created, reason = new URI) document créé,
    • 202 : (async completion (TBS)) requête achevée de manière asynchrone,
    • 203 : (partial completion) requête achevée de manière incomplète,
    • 204 : (no info to return) aucune information à retourner,
    • 205 : (request completed, but clear form) requête terminée mais formulaire vide,
    • 206 : (partial GET furfilled) requête GET incomplète ;
  • Code 3XX, redirection :
    • 300 : (server couldn't decide what to return) code de retour impossible à déterminer par le serveur,
    • 301 : (object permanently moved) document déplacé définitivement,
    • 302 : (object temporarily moved) document déplacé temporairement,
    • 303 : (redirection with new access method) redirection avec nouvelle méthode d'accès,
    • 304 : (if-modified-since was not modified) le champ 'if-modified-since' n'était pas modifié,
    • 305 : (redirection to proxy, location header specifies proxy to use) redirection vers un proxy spécifié par l'entête,
    • 307 : (HTTP/1.1: keep same verb) HTTP/1.1 ;
  • Code 4XX, erreur de requête client :
    • 400 : (invalid syntax) erreur de syntaxe,
    • 401 : (access denied) pas d'autorisation d'accès au document,
    • 402 : (payment required) accès au document payant,
    • 403 : (forbidden) la ressource demandée existe mais vous n'avez pas le droit de l'avoir,
    • 404 : (page not found) la ressource demandée n'existe pas sur le serveur,
    • 405 : (method is not allowed) méthode de requête du formulaire non autorisée,
    • 406 : (no response acceptable to client found) requête non acceptée par le serveur,
    • 407 : (proxy authentication required) autorisation du proxy nécessaire,
    • 408 : (server timed out waiting for request) temps d'accès à la page demandée expiré,
    • 409 : (user should resubmit with more info) l'utilisateur doit soumettre à nouveau avec plus d'infos,
    • 410 : (the resource is no longer available) cette ressource n'est plus disponible,
    • 411 : (the server refused to accept request w/o a length) le server a refusé la requête car elle n'a pas de longueur,
    • 412 : (precondition given in request failed) la précondition donnée dans la requête a échoué,
    • 413 : (request entity was too large) l'entité de la requête était trop grande,
    • 414 : (request URI too long) l'URI de la requête était trop longue,
    • 415 : (unsupported media type) type de média non géré ;
  • Code 5XX, erreur du serveur :
    • 500 : (internal server error) erreur interne du serveur,
    • 501 : (required not supported) requête faite au serveur non supportée,,
    • 502 : (error response received from gateway) mauvaise passerelle d'accès,
    • 503 : (temporarily overloaded) service non disponible,
    • 504 : (timed out waiting for gateway) temps d'accès à la passerelle expiré,
    • 505 : (HTTP version not supported) version HTTP non gérée.

Je ne pense pas en avoir oublié...
Vous pouvez voir qu'il existe beaucoup de codes de retour pour un traitement de requête HTTP. Je ne vous cache pas qu'il n'est pas utile de les connaître tous par coeur, sachez seulement retrouver la correspondance entre un code d'erreur et sa signification et ça ira...

Donc, pour en revenir à notre problème, nous avons envoyé une requête HTTP à notre serveur pour qu'il nous retourne une page web. Or, si vous n'avez pas oublié les cours de tonton M@teo, si vous demandez une racine de répertoire à une serveur web, ce qui est notre cas, celui-ci cherche un fichier se nommant "index.html" (ou avec une autre extension, mais son nom est index). Vous êtes d'accord avec moi pour dire que ce fichier n'existe nulle part dans notre répertoire "Test" !
Par conséquent, notre serveur nous retourne une erreur 404 : page not found !
Pour pallier ce problème, nous allons ajouter une page "index.html" dans notre projet grâce à Eclipse.
Attention : la page que vous allez créer sera dans votre projet Eclipse et non dans l'application déployée dans Tomcat !

Pour créer une page HTML à la racine du projet, faites - sous Eclispe - un clic-droit sur le dossier global de votre projet, choisissez ensuite "new > other" et dans le menu "web", sélectionnez HTML :

Image utilisateur


Eclipse vous génère une bonne dose de code HTML lui-même. J'ai juste rajouté cette ligne :

Code : HTML
1
<h1>Coucou les ZérOs</h1>


Vous n'avez plus qu'à copier-coller ce fichier dans le dossier "webapps/Test" dans Tomcat et de rafraîchir la page qui retournait une erreur.
Vous passez de ça :

Image utilisateur


à ça :

Image utilisateur


Victoire ! Vous venez de créer et de déployer votre première application JEE !
Je sais, j'en fais beaucoup... Et une page web statique n'a rien d'une application JEE... :euh:

Une chose... On va devoir faire des copier-coller sans arrêt ?

Non, bien sûr.
Il y a une alternative et les plus malins d'entre vous l'ont sans doute déjà trouvée : utiliser le dossier "webapps" de votre Tomcat comme espace de travail ! :magicien:
Une reconfiguration d'Eclipse est peut-être nécessaire...

Pour faire ceci, il vous suffit d'aller dans le menu "File", de choisir l'option "Switch Workspace" et de sélectionner "Other..." comme ceci :

Image utilisateur


Vous n'avez plus qu'à choisir le dossier "webapps" de Tomcat et le tour est joué !

Il va de soi que je pars du principe que le Tomcat en question n'est pas le serveur que les clients utilisent dans le cas où vous travaillez en conditions réelles...
Il vaut mieux ne pas modifier des fichiers consultables directement sans être sûr que la modification fonctionne !

Arrêt, démarrage et suppression

C'est le genre de sous-chapitre que j'affectionne car il va être très court...

Vous avez vu que la page HTML que nous avons créée fonctionne ; cependant, vous devez savoir que l'application fonctionne tant que Tomcat la considère comme démarrée :

Image utilisateur


Dans la colonne "commands", vous avez le choix entre plusieurs actions :
  • arrêter : stoppe l'application, elle ne sera plus disponible ;
  • démarrer : lance l'application ;
  • recharger : arrête puis démarre l'application ;
  • undeploy : supprime l'application.


Prenez votre application "Test" et cliquez sur "arrêter", vous devriez avoir ceci maintenant :

Image utilisateur


Essayez d'accéder à la page de test... Impossible ! Si vous voulez y accéder de nouveau, vous devrez démarrer l'application.

Pour supprimer une application sur le serveur Tomcat, il faut tout simplement cliquer sur "undeploy".
ATTENTION : cette action supprime l'application dans le listing de Tomcat mais aussi dans le dossier webapps ! !

Bon, vous savez maintenant comment créer, déployer, démarrer, arrêter et supprimer une application JEE. Si on en profitait pour entrer dans le vif du sujet ? ;)
Après le QCM, bien entendu...

Q.C.M.

Quel type de projet avons-nous créé sous Eclipse ?
Quel dossier retrouve-t-on dans toutes les applications J2EE ?
Dans quel dossier doit-on déployer les applications J2EE ?
Quel est le code d'erreur que nous retourne le serveur s'il ne trouve pas la page demandée ?
Supprimer une application par le biais de l'administration Tomcat supprime-t-il les fichiers ?

Statistiques de réponses au QCM

Pas mal pour un début !
Il y a aussi quelques points obscurs mais ne vous inquiétez pas, nous allons les éclaircir d'ici peu...

Le mieux est encore de continuer dans notre lancée... :-°
Chapitre précédent Sommaire Chapitre suivant

Partager

40 commentaires pour "Premiers pas"
Note moyenne : 3.17 / 4 (294 votes)
Pseudo Commentaire
Hors ligne leyou88 # Posté le 07/03/2012 à 23:17:47

Bonsoir, sur le localhost l'interface de tomcat version 7 n'est pas la meme que sur la version 6 et lorsqu'on clique sur certain liens on me demande de m'identifier et sa ne marche pas. Il y a autre chose qui m'intrigue c'est lorsque je démarre Tomcat la dernière ligne qui s'ecrit est :mars 07, 2012 11:01:44 PM org.apache.coyote.AbstractProtocol destroy
Infos: Destroying ProtocolHandler ["ajp-bio-8009"]
et pas ce que vous avez encadré en vert un peu plus haut. Je vous remercie d’avance de votre réponse
Hors ligne A.Akram # Posté le 15/03/2012 à 00:50:59

Pour ceux ayant le problème du truc native(les erreures en rouges), il faut télécharger le dll a http://archive.apache.org/dist/tomcat/ [...] naries/win32/ et le mettre dans windows/system32( pour win xp);
ca résout le premier problème, mais reste le conflit de port!
Hors ligne maroua.e # Posté le 10/04/2012 à 13:45:00

Bonjour tout le monde,

SVP je suis bloqué au niveau de l'accès à la partie administration de Tomcat, il me demande un nom d'utilisateur et un mot de passe!!!!!

SVP aidez moi :( :(
Hors ligne Darlik # Posté le 11/04/2012 à 22:09:28
Avatar

Citation : maroua.e
Bonjour tout le monde,

SVP je suis bloqué au niveau de l'accès à la partie administration de Tomcat, il me demande un nom d'utilisateur et un mot de passe!!!!!

SVP aidez moi :( :(

Tu dois paramétrer un utilisateur ayant les droits manager dans le fichier : dossier_install_tomcat/conf/tomcat-users.xml
et créer un utilisateur comme ceci.

<tomcat-users>
<role rolename="manager-gui"/>
<user username="toi" password="tom_mot_de_passe" roles="manager-gui"/>
</tomcat-users>


ou selon ta version de tomcat

<tomcat-users>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="toi" password="tom_mot_de_passe" roles="admin,manager"/>
<tomcat-users>


Ensuite redémarre Tomcat, çà devrait résoudre ton pb.
Hors ligne curieuse_prog # Posté le 09/05/2012 à 11:35:34

Bonjour,

J'ai installé tomCat en tant que serveur d'application(version 6.0), sur mon poste.

L'installation s'est bien déroulée.

J'ai également installé le plugin tomcatplugin version 3.2.1: j'ai dézippé le fichier compressé et en ai fait une copie dans le repertoire plugins du repertoire eclipse.

Je vois donc bien apparaître les 3 chats dans la barre de taches d'eclipse.

Cependant, si je souhaite crée un nouveau projet tomcat, je ne vois pas proposé tomcat project, lorsque je fait : file+ new: je ne vois proposés que java project ainsi que toutes les autres options mais pas tomcat project.
Pouvez-vous me dire ce que je dois faire pour remédier à cela.Je tourne en rond depuis quelque temps

Merci beaucoup à vous.

Bien cordialement.
curieuse_prog

Voir tous les commentaires