Débugger une application sur Weblogic avec le Plugin pour Eclipse de BEA

Afin de débugger une application, la méthode la plus connue est le logger.
Commons-logging, log4j, … sont autant de frameworks qui permettent d’écrire proprement des messages dans les fichiers dédiés.
Cependant, cette approche a ses limites : lors d’un débuggage avancé, il arrive souvent de ne pas avoir loggé suffisament de choses.
Pour pallier cette lacune, il suffit de lancer son serveur en mode debug (une option dans un fichier de configuration, le plus souvent), de lier les sources au code compilé/déployé et de progresser par étape dans le code, à l’aide de “Points de rupture” ou “Breakpoints”.
Dans un premier temps, il vous faudra télécharger le plugin BEA (compatible Callisto) à l’adresse suivante (via l’Update Manager)
https://eclipse-plugin.projects.dev2dev.bea.com/update
Affichez la nouvelle vue, qui se trouve dans *Window *> Show view > *Weblogic *> Weblogic Servers
Créez une nouvelle configuration en cliquant sur la croix verte en haut à droite de la vue.
Vous distinguerez trois onglets “General“, où vous configurerez le domaine. A noter : vous pouvez définir si le serveur est en local ou distant.
L’onglet “Classpath“, quant à lui, permet de gérer les classes à charger par le classloader (preclasspath et postclasspath).
La seule particularité, qui nous intéresse dans le cas présent, provient des options qui se trouvent sur le troisième onglet “Runtime”.
Ici, vous pourrez spécifier la *JRE *et les arguments que vous désirez lui appliquer ainsi que le mode de lancement :

  • Default Mode : lance le serveur de la façon classique.
  • **Debug Mode **:permet de définir un port d’écoute supplémentaire pour Weblogic.

Définissez vos breakpoints, lancez le serveur. (Il se peut que vous ayiez à ajuster la configuration au fur et à mesure).
Une fois démarré, lancer un test *JUnit *en “mode debug“, si tout s’est bien passé, Eclipse basculera en perspective debug et s’arrêtera sur l’un de vos breakpoints, lorsque l’exécution arrivera à son niveau.