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 :
Et rendez-vous dans la partie d'administration, pour mémoire c'est ici :
Vous voici devant le listing des applications présentes dans Tomcat !
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" :
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 :
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à :
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 :
Eclipse vous génère une bonne dose de code HTML lui-même. J'ai juste rajouté cette ligne :
Code : HTML | <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 :
à ça :
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...
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 !

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 :
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 !