Premiers pas avec Tomcat dans Eclipse

Ce tutorial a pour objet de présenter la configuration d'Eclipse pour développer des applications web sous Tomcat. Il commence par l'installation du plugin Tomcat dans Eclipse, puis la prise en charge pas Eclipse d'un serveur Tocmat. Enfin, on montre comment créer un premier projet Web sous Eclipse, et sa mise au point sous Tomcat.

1. Création d'un serveur Tomcat sous Eclipse

Avant de créer ce serveur, on doit s'assurer que le plugin Tomcat est bien installé dans Eclipse. Cela se passe dans la fenêtre des Preferences d'Eclipse, à laquelle on peut accéder dans le menu Windows.

Ouvir les préférences d'Eclipse

Figure 1. Ouvir les préférences d'Eclipse


Cette fenêtre comporte énormément d'options, que l'on peut filtrer. La capture d'écran suivante montre celle qui nous intéresse : les Server Runtime Environments.

Ouvrir le panneau des serveurs disponibles

Figure 2. Ouvrir le panneau des serveurs disponibles


Pour le moment aucun serveur n'est disponible, ce qui est normal, puisque l'on en n'a déclaré aucun.

Cliquer sur le bouton Add... ouvre la liste des plugins qu'Eclipse possède déjà. Si Tomcat n'apparaît pas dans cette liste, on peut la compléter par téléchargement en clique sur le lien Download additional server adapters, en haut droite de ce panneau.

Dans notre cas, les plugins pour les différentes versions de Tomcat sont déjà présents, on sélectionne celui qui correspond à la version 6 de Tomcat.

Sélection de Tomcat version 6

Figure 3. Sélection de Tomcat version 6


L'étape suivante consiste à indiquer à Eclipse où se trouve le répertoire d'installation de Tomcat. On peut le préciser en cliquant sur le bouton Browse... et en allant sélectionner le bon répertoire.

Une fois le répertoire validé, l'installation de Tomcat que l'on a spécifiée apparaît dans la liste des Server Runtime Environments.

L'installation de Tomcat dans Eclipse est validée

Figure 4. L'installation de Tomcat dans Eclipse est validée


Notre installation est validée, nous allons pouvoir passer à l'étape suivante.

2. Création d'un premier projet Web

Un projet Web est un type de projet spécial sous Eclipse. Spécial, en ce sens qu'il est attaché à un serveur d'applications (ici Tomcat, ce pourrait être un autre serveur), et qu'il expose des fonctionnalités particulières pour créer des servlets, des pages, ou des services web (que nous ne présenterons pas ici).

La création d'un projet Web débute comme un projet Eclipse normal. Comme il ne s'agit pas d'un projet Java classique, on sélectionne la rubrique Project... du sous-menu New.

Création d'un projet web - 1

Figure 5. Création d'un projet web - 1


Dans le panneau qui s'ouvre, on sélectionne alors Dynamic Web Project, sous le nœud Web.

Création d'un projet web - 2

Figure 6. Création d'un projet web - 2


Le panneau qui s'ouvre alors est un peu plus compliqué que celui d'un projet Java classique. En particulier, il nous demande de choisir le serveur que ce projet va utiliser pour fonctionner. Dans notre exemple, on sélectionne le serveur Tomcat que l'on vient de créer. La version de l'API Servlet est sélectionnée automatiquement : 2.5, version la plus récente supportée par Tomcat v6.

Création d'un projet web - 3

Figure 7. Création d'un projet web - 3


Le panneau suivant nous demande dans quel répertoire on souhaite ranger nos fichier source. On conserve le choix par défaut : le répertoire src.

Création d'un projet web - 4

Figure 8. Création d'un projet web - 4


Le dernier panneau nous demande dans quel répertoire on souhaite ranger les ressources de ce projet web : le répertoire WebContent. C'est dans ce répertoire que l'on pourra ranger les différentes ressources de notre projet : pages HTML, tout fichier multimedia, fichier Javascript, etc...

On peut également générer automatiquement le fichier web.xml de notre application web, ce qui une commodité offerte par Eclipse. Ce fichier sera rangé automatiquement dans WebContent/WEB-INF.

Création d'un projet web - 5

Figure 9. Création d'un projet web - 5


Une fois notre projet créé, Eclipse nous demande si l'on souhaite utiliser la perspective Java EE. Cette perspective est bien adaptée au développement des projets Java EE (elle est même faite pour ça !), on accepte donc cette proposition.

Utilisation de la perspective Java EE

Figure 10. Utilisation de la perspective Java EE


Sur la partie gauche de cette perspective, se trouve la vue Project Explorer (qui ressemble beaucoup à Package Explorer), dans laquelle notre nouveau projet apparaît.

Structure de notre projet dans la vue Project Explorer

Figure 11. Structure de notre projet dans la vue Project Explorer


Notre projet est maintenant créé, et l'on va pouvoir passer à l'étape suivante : créer une première servlet.

3. Création d'une première servlet

La perspective Java EE nous montre une frise d'icône qui nous permet de créer directement des classes Java de servlet. C'est que nous allons utiliser pour notre première servlet.

La première rubrique du menu qui s'ouvre est celle qui nous permet de créer une servlet.

Création d'une première servlet

Figure 12. Création d'une première servlet


Un panneau s'ouvre alors, qui nous permet de spécifier la classe de cette servlet : son nom, et le nom du package dans lequel cette classe sera placée. Une servlet étend nécessairement HttpServlet, on ne doit donc prendre garde à ce point si l'on modifie la classe qu'étend notre servlet.

Création d'une première servlet : fixer la classe

Figure 13. Création d'une première servlet : fixer la classe


Le panneau suivant nous permet de fixer les informations sur cette servlet, qui seront écrites dans le fichier web.xml de notre application.

  • Le nom de notre servlet, utilisé pour s'y référer dans le fichier web.xml.

  • Ses paramètres d'initialisation.

  • Le (ou les) paramètres URL mappings, qui fixeront l'URL à laquelle notre servlet sera disponible.

Création d'une première servlet : fixer ses paramètres

Figure 14. Création d'une première servlet : fixer ses paramètres


Le dernier panneau de création précise le contenu de la classe qu'Eclipse va nous générer. Par commodité, Eclipse peut créer pour nous différentes méthodes standard de notre servlet, telles que init(), doGet() ou doPost().

Création d'une première servlet : méthodes à générer

Figure 15. Création d'une première servlet : méthodes à générer


Une fois ces étapes déroulées, notre classe de servlet est créée, et apparaît dans la structure de notre projet.

Servlet créée dans la structure du projet

Figure 16. Servlet créée dans la structure du projet


Le fichier web.xml a bien été modifié, et prend bien en compte la servlet qui vient d'être créée.

Servlet déclarée dans le fichier web.xml

Figure 17. Servlet déclarée dans le fichier web.xml


Notre servlet est très simple, son code est le suivant.

Exemple 1. Code d'une première servlet

public class HelloWorld extends HttpServlet {

   protected void doGet(
      HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException {
   
      PrintWriter pw = response.getWriter() ;
      pw.write("Hello world !") ;
   }

   protected void doPost(
      HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException {
      
      doGet(request, response) ;
   }
}

Une fois cette classe créée, il nous reste à la faire fonctionner dans Tomcat, ce qui est l'objet de la prochaine étape.

4. Première installation de Tomcat

Une servlet doit être exécutée dans un serveur d'applications, dans notre exemple il s'agit de Tomcat. La première étape consiste à créer une instance de serveur Tomcat, associée à notre espace de travail.

La création d'une instance de Tomcat (comme de tout autre serveur d'application) peut se faire directement dans la vue Servers, présente dans le bas de la perspective Java EE. Le menu contextuel de cette vue permet de créer cette nouvelle instance.

Création d'un serveur Tomcat dans la vue Servers

Figure 18. Création d'un serveur Tomcat dans la vue Servers


Le panneau qui s'ouvre alors permet de sélectionner le serveur qui va être créé. Pour cela, il faut renseigner les différents éléments du panneau.

  • Le type de serveur : ici Tomcat v6.

  • Le Server host name : ici localhost.

  • Le Server name : ici Tomcat v6.0 Server at localhost. Ce nom est un nom logique utilisé par Eclipse. Il peut être utile de modifier sa valeur par défaut lorsque l'on fait fonctionner plusieurs serveurs de même type sur une même machine.

  • Le Server runtime environment : c'est ici que l'on sélectionne le Tomcat que l'on a installé précédemment. On peut aussi installé de nouveaux serveur en cliquant sur le lien Add... qui se trouve à côté de ce sélecteur.

Sélection du serveur

Figure 19. Sélection du serveur


Une fois l'instance de serveur créé, il faut lui ajouter des projets. Ici nous avons créé un serveur Tomcat, capable d'exécuter des servlets, on peut donc lui ajouter des projets qui contiennent des servlets. Eclipse ne nous propose ici que les projets web. Si nous avions d'autres projets Java dans notre espace de travail, ils n'apparaitraient pas dans cette liste.

Ajout d'un projet web au serveur

Figure 20. Ajout d'un projet web au serveur


Cette étape était la dernière : notre serveur est maintenant créé, et notre projet web lui a été ajouté. Notons que l'on peut aussi ajouter des projets à un serveur en les glissant / déposant à partir de la vue Project explorer.

Notre vue Servers a maintenant l'allure suivante.

Vue Server une fois Tomcat installé

Figure 21. Vue Server une fois Tomcat installé


5. Exécution d'une première servlet

Lorsque toute la configuration précédente a été effectuée, l'exécution d'une servlet devient assez simple. Il suffit de sélectionner la traditionnelle option Run as... du menu contextuel de la classe que l'on veut exécuter. Comme cette classe ne comporte pas de méthode main(), la rubrique Java Application n'est pas présente. En revanche, nous avons la rubrique Run on Server, que nous allons sélectionner.

Lancement d'une servlet

Figure 22. Lancement d'une servlet


Eclipse nous demande alors quel serveur va exécuter cette servlet. Ici nous n'en avons qu'un, dans une configuration complexe, il pourrait y en avoir plusieurs.

Choix d'un serveur d'exécution

Figure 23. Choix d'un serveur d'exécution


Ici encore, il est possible d'ajouter des ressources de notre espace de travail au serveur. On peut sauter cette étape en cliquant directement sur le bouton Finish du panneau précédent.

Sélection de ressources à ajouter au serveur

Figure 24. Sélection de ressources à ajouter au serveur


Eclipse nous ouvre enfin une vue Navigateur, sur l'URL associée à notre servlet. Cette URL est composée de deux éléments principaux : l'hôte sur lequel on a installé notre serveur, et l'élément d'URL auquel est associée notre servlet. Le port choisi par Eclipse est le port 8080, par défaut. Nous verrons dans la suite comment le changer.

Une première servlet lancée

Figure 25. Une première servlet lancée


On peut également copier cette URL et la coller dans un navigateur lancé localement.

6. Création d'une première JSP

Créer et exécuter une page JSP suit le même processus qu'une servlet. Le menu contextuel du projet nous permet d'ouvrir le panneau de création d'une JSP.

Création d'une JSP

Figure 26. Création d'une JSP


Le premier panneau qui s'ouvre alors permet de fixer dans quel répertoire notre JSP va être créée. Ce répertoire doit se trouver sous celui que nous avons déclaré comme étant celui qui contient nos ressources web, au niveau de notre projet. Par défaut, il s'agit du répertoire WebContent.

Choix du répertoire de création de notre JSP

Figure 27. Choix du répertoire de création de notre JSP


Le second panneau est plus technique. Il nous demande le type de la JSP que nous voulons créer. Il y a sept possibilités, et l'objet de ce tutorial n'est pas de présenter les différences qui existent entre chacune. On sélectionne donc la quatrième : JSP with html markup.

Choix du type de JSP

Figure 28. Choix du type de JSP


Il ne nous reste plus qu'à valider la création de notre JSP. Elle apparaît sous le nœud WebContent de notre projet dans la vue Project Explorer sous la forme suivante.

Structure de notre projet avec une JSP

Figure 29. Structure de notre projet avec une JSP


7. Exécution d'une première JSP

Mettons un peu de code dans notre JSP avant de l'exécuter.

Exemple 2. Code d'une première JSP

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                      "http://www.w3.org/TR/html4/loose.dtd">
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
      <title>Insert title here</title>
   </head>
   <body>
      Bonjour le monde, il est <%=new java.util.Date() %>
   </body>
</html>

Bien que n'étant pas (encore !) une classe Java, une JSP s'exécute de la même manière qu'une servlet, en allant chercher la rubrique Run on Server qui se trouve dans le sous-menu Run as... du menu contextuel de cette JSP.

Exécution de notre première JSP

Figure 30. Exécution de notre première JSP


Eclipse nous demande alors quel serveur il doit utiliser pour cette exécution. Dans notre exemple nous n'en avons créé qu'un seul, le choix est donc facile.

Choix du serveur d'exécution

Figure 31. Choix du serveur d'exécution


De même que pour l'exécution d'une servlet, on peut alors changer les ressources connues de ce serveur.

Choix des ressources pour l'exécution

Figure 32. Choix des ressources pour l'exécution


Tout comme pour une servlet, notre exécution se fait dans le navigateur intégré à Eclipse. Eclipse nous l'affiche dans sa vue, comme sur la capture suivante.

Exécution d'une JSP dans un navigateur

Figure 33. Exécution d'une JSP dans un navigateur


On peut bien sûr copier l'URL affichée par ce navigateur, et la coller dans un autre navigateur.

Lorsque l'on dit "exécuter une JSP" (ou une servlet) dans un navigateur, il ne faut pas se méprendre sur le sens des choses. La servlet, ou la JSP est exécutée dans une JVM, dans Tomcat, et ce que l'on observe dans la navigateur, ce n'est que l'affichage de la page contenant le code HTML généré par cette servet ou cette JSP.

8. Arrêt et redémarrage de Tomcat

Notons que la vue Servers présente des boutons qui nous permetttent d'arrêter, et de relancer tomcat. Le lancement de Tomcat peut se faire en mode normal ou en mode debug, ce qui permet d'exécuter pas à pas nos servlets, nos JSPs, et nos services web si l'on en avait.

Lancement de Tomcat en mode normal

Figure 34. Lancement de Tomcat en mode normal


On peut aussi "rafraîchir" Tomcat. Cela signifie que l'on force le rechargement de toute ressource (servlet ou JSP notamment) qui aurait été modifiée dans Eclipse, alors que Tomcat était en cours d'exécution.

Rafraîchissement de Tomcat

Figure 35. Rafraîchissement de Tomcat


Enfin on peut accéder à un panneau de configuration de Tomcat, simplement en double-cliquant dessus dans la vue Servers. Ce panneau s'affiche dans une vue spéciale, qui porte le nom que l'on a donné à l'instance. Elle permet de configurer de nombreux paramètres, dont le port d'écoute HTTP de Tomcat, ce qui est utile en cas d'instances multiples par exemple.

Panneau de configuration de Tomcat

Figure 36. Panneau de configuration de Tomcat


Eclipse / Tomcat
Retour au blog Java le soir
Cours & Tutoriaux