Bienvenue

Jalios Community

Tout ce que vous souhaitez savoir sur l'écosystème Jalios

JCMS 5.6 : Utiliser Eclipse pour développer avec JCMS et Tomcat
JCMS JCMS 5.6
Benoît Dissert
11 septembre 2006 387 vues
En résumé...

[info]Un document abordant la [[jx_73633][méthodologie de développement et de déploiement JCMS]] est désormais disponible. C'est le document de référence en terme de gestion de développement et de déploiement. [/info] Cet article est un mode opératoire d'installation d'Eclipse, de Tomcat et du plugin Sysdeo afin de créer un environnement propice au déploiement d'un projet JCMS.


Un document abordant la méthodologie de développement et de déploiement JCMS est désormais disponible. C'est le document de référence en terme de gestion de développement et de déploiement.

1. Introduction

Configurer Eclipse pour bénéficier de la complétion automatique, du débuggage, et de ses autres fonctionnalités de base ne pose pas de problème particulier. Cependant, Eclipse seul ne permet de lancer que des applications Java (c’est-à-dire des classes avec une méthode main()). Ce n'est pas le cas d'un projet JCMS, qui doit être exécuté dans un serveur d’application J2EE. Cet article explique comment lancer une webapp JCMS avec Tomcat et le plugin Sysdeo depuis Eclipse.

2. Principes

Voici la liste des composants que nous allons installer et utiliser :

  • Tomcat 5.0.28 ;
  • Eclipse 3.2 ;
  • Le plugin Tomcat pour Eclipse de Sysdeo en version 3.1 ;
  • JCMS 5.6.0.

Les liens pour récupérer ces distributions sont disponibles à la fin de cet article. Par ailleurs, un J2SDK 1.4.2 ou 1.5.0 doit être installé.

Le mode opératoire est détaillé sous Windows, la procédure est similaire sous Linux.

Nous allons installer Tomcat, Eclipse et le plug in Sysdeo dans un répertoire C:\EclipseJCMS, puis créer un Workspace Eclipse C:\EclipseJCMS\Workspace dans lequel nous allons installer JCMS, de manière à ce qu’il puisse être pris en compte par Eclipse et le plugin Sysdeo. Nous allons enfin créer un fichier de configuration de Tomcat spécifique à notre utilisation et le faire prendre en compte par le plugin.

3. Installations sous Windows

3.1 Installation de Tomcat

Décompresser le fichier zip d’installation de Tomcat directement sous C:\EclipseJCMS. Cela créé un répertoire C:\EclipseJCMS\jakarta-tomcat-5.0.28.

3.2 Installation d’Eclipse

  • Décompresser le fichier zip d’installation d’Eclipse directement sous C:\EclipseJCMS. Cela créé un répertoire C:\EclipseJCMS\eclipse.
  • Créer le répertoire C:\EclipseJCMS\Workspace.
  • Lancer Eclipse (C:\EclipseJCMS\eclipse\eclipse.exe).
  • Sélectionner comme répertoire de Workspace, le répertoire C:\EclipseJCMS\Workspace.
  • Cliquer sur l’icône Workbench.
  • Accéder à l’interface de configuration Window > Preferences.
  • Dans Java > Installed JRE, ajouter une entrée en recherchant un JDK 1.4.2 ou 1.5.0.
  • Dans Java > Compiler > Compiler compliance level, choisir 1.4.
  • Sélectionner cette entrée comme entrée par défaut. Cliquer sur OK.
  • Dans Java > Installed JRE > Execution Environments, cliquer sur J2SE-1.4 (ou J2SE-1.5) et sélectionner le JRE qui vient d'être installé, puis cliquer sur OK
  •  Dans General > Workspace, déployer la section Text File Encoding. Sélectionner Other, puis UTF-8 et cliquer sur OK (nécessaire à partir de JCMS 5.5).

3.3 Installation du plugin Sysdeo

  • Fermer Eclipse.
  • Décompresser le fichier zip d’installation de ce plugin directement sous C:\EclipseJCMS\eclipse\plugins.
  • Lancer à nouveau Eclipse en utilisant le même workspace.
  • Dans le menu Window > Customize perspective..., cliquer sur Java et cocher Projet Tomcat.
  • Accéder à Window > Preferences > Tomcat.
  • Sélectionner la version 5.x de Tomcat, puis choisir le répertoire C:\EclipseJCMS\jakarta-tomcat-5.0.28 de Tomcat.

Nous allons créer un fichier de configuration de Tomcat server.xml spécifique à notre Workspace, de manière à pouvoir utiliser la même installation de Tomcat pour plusieurs usages.

  • Copier le fichier C:\EclipseJCMS\jakarta-tomcat-5.0.28\conf\server.xml dans C:\EclipseJCMS\Workspace.

Le fichier server.xml doit être modifié en raison de l’encodage en UTF-8 utilisé depuis JCMS 5.5. Pour cela :

  • Editer ce fichier.
  • Identifier le connecteur Coyote et ajouter l’attribut suivant : URIEncoding="UTF-8".

Pour ne pas avoir d’impact avec les webapps livrées par défaut dans Tomcat, modifier également la valeur de l’attribut name de l’élément Engine (par exemple : EclipseJCMS-Workspace), et dans l’élément Host, mettre un espace à la valeur de l’attribut appBase.

  • Dans Window > Preferences > Tomcat > Déclaration des contextes > Fichier de configuration pointer vers le fichier C:\EclipseJCMS\Workspace\server.xml et valider.

Tomcat, Eclipse et le plugin Sysdeo sont maintenant installés.

4. Déploiement d'un projet JCMS

Créer un répertoire C:\EclipseJCMS\Workspace\ProjetTomcatJCMS et un sous répertoire jcms-5.6.0-ee-fr dans lequel décompresser le contenu de JCMS 5.6.

Dans Eclipse, créer un nouveau Projet Tomcat, avec comme nom ProjetTomcatJCMS. Cliquez sur Next.
Comme sous répertoire racine de l’application web, saisisser jcms-5.6.0-ee-fr et comme context-path jcms. Valider.

Le projet Tomcat est créé. Les librairies .jar sont reconnues et intégrées dans le classpath du projet, ainsi que les classes dans différents répertoires. Dans les propriétés du projets, section Java Build Path, onglet sources il ne faut garder que le répertoire jcms-5.6.0-ee-fr/WEB-INF/classes.

Sur le projet, faire un click droit, puis, dans le sous-menu contextuel Projet Tomcat, cliquer sur Mise à jour du contexte.

5. Utilisations


5.1 Lancement de JCMS depuis Eclipse

Le lancement de JCMS se fait par l’utilisation de l’icône icône sysdeo de lancement de Tomcat. Consulter les traces du lancement de JCMS dans la fenêtre console d'Eclipse et accéder à l’application par http://127.0.0.1:8080/jcms.

5.2 Débugage

Ajouter une servlet DebugServlet dans le package custom de cette webapp :

package custom;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DebugServlet extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    out.println("Hi there !");
  }
}

Déclarer la servlet dans le fichier web.xml.

  <SERVLET>
    <SERVLET-NAME>DebugServlet</SERVLET-NAME>
    <SERVLET-CLASS>custom.DebugServlet</SERVLET-CLASS>
  </SERVLET>
  <SERVLET-MAPPING>
    <SERVLET-NAME>DebugServlet</SERVLET-NAME>
    <URL-PATTERN>/DebugServlet</URL-PATTERN>
 </SERVLET-MAPPING>

Exécuter la servlet par l'URL : http://127.0.0.1:8080/jcms/DebugServlet, ce qui donne un affichage du texte "Hi there !".

On peut ensuite ajouter un point d’arrêt (en anglais breakpoint) dans le code de la méthode doGet() de la servlet :

Pose d'un point d'arrêt

Si l'on appelle à nouveau la servlet, le traitement de la requête est bloqué au niveau d'Eclipse qui nous propose de passer dans la perspective Debug.

Switch Debug Perspective

La perspective Debug comporte les éléments suivants :

  1. Les icônes de progression dans le code;
  2. Les variables courantes;
  3. Les piles d'éxecution des threads;
  4. La position courante dans le code.

Debug prespective

 (cliquer sur l'image pour l'agrandir)

A partir de là, on peut débuguer classiquement.

A noter que le plugin Sysdeo ne permet pas de faire du "Remplacement de code à chaud" (traduction littérale de "Hot code replacement"), comme le propose par exemple MyEclipse. C'est-à-dire que si le code d'une classe est modifié, le plugin SYSDEO redémarre la webapp avant de pouvoir continuer l'exécution du code.

6. Choix du plugin Sysdeo et autres plugins

Nous avons retenu le plugin Sysdeo, pour les raisons suivantes :

  • Il fonctionne avec Tomcat qui est un serveur d'application J2EE très répandu;
  • Il est disponible librement et gratuitement;
  • Son installation et son utilisation sont simples et fonctionnelles.

Bien qu'il :

  • Ne fournisse pas de facilités de développements dans les JSP ;
  • Ne supporte que Tomcat comme serveur d'application.

Parmi les autres plugins interprétant des webapps J2EE, citons :

  • WTP 1.5 : Web Tool Project :
    • (+) Projet du consortium Eclipse ;
    • (+) Disponible gratuitement ;
    • (+) Permet de disposer de complétion automatique dans les JSP ;
    • (-) D'après nos tests, le lancement d'une webapp complexe ou simple que l'on essaye de reconfigurer ne fonctionne pas, et donc a posteriori ne permet pas de débuguer ;
    • (-) La liste des serveurs d'application supportée est assez faible, en particulier, Resin n'est pas supporté.
  • Plugin Improve pour Resin :
    • (+) Permet de debuguer les servlets et, dans une mesure moins satisfaisante que MyEclipse, les JSP ;
    • (+) Supporte le remplacement de code à chaud ;
    • (+) Très simple à configurer;
    • (-) Ne supporte que Resin.
  • MyEclipse :
    • (+) Supporte une quantité très importante de serveurs d'application ;
    • (+) Permet de débuguer de manière très ergonomique dans les JSP ;
    • (+) Supporte la complétion automatique, la coloration syntaxique et la navigation rapide dans les JSP ;
    • (+) Supporte le remplacement de code à chaud ;
    • (-) Produit payant (nécessite une souscription d'une trentaine de dollars par an pour un développeur).