Déboguer vos services Oracle Webcenter Content

J’ai récemment travaillé sur un projet avec beaucoup de personnalisations du moteur de services Webcenter Content: création de nouveaux services, création de filtres, etc. Le tout en Java et avec notre IDE préféré, à savoir JDeveloper.

Les services développés sont déployés dans Webcenter Content et sont donc exécutés par le moteur de service Webcenter Content. Il est impossible de les exécuter localement et de les tester avant le déploiement. Vous le savez, un déploiement est coûteux puisque, pour prendre effet, le serveur Webcenter Content doit être redémarré …
On ne s’amuse donc pas à redéployer toutes les 5 minutes, et le débogage distant peut alors être un outil très efficace.
Je vais vous expliquer dans cet article comment configurer votre environnement (de développement) pour déboguer vos services Webcenter Content.

Côté Weblogic

JDeveloper et Weblogic vont devoir communiquer, il faut donc ajouter quelques paramètres au démarrage de la JVM pour autoriser le débogage et spécifier un port d’écoute.
En vous rendant dans les options de démarrage du serveur Webcenter Content via la console Weblogic, ajoutez les informations suivantes :

-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=PORT_LIBRE,server=y,suspend=n -Djava.compiler=NONE

Il ne reste qu’à redémarrer Webcenter Content

Côté JDeveloper

Il vous faut configurer votre projet pour « autoriser » le débogage à distance.
Pour cela, c’est très simple, rendez vous dans les propriétés du projet en faisant un clic droit sur le projet :
 
Éditez le profil par défaut pour renseigner les informations suivantes :

  1. Cochez l’option « Remote Debugging »
  2. Dans la section « Remote », renseignez l’adresse du serveur sur lequel vous comptez déployer le service et le numéro du port que vous avez renseigné dans les options de démarrage de la JVM

Côté tests …

Une fois le service ou le filtre déployé sur le serveur, il vous suffit d’activer le débogage sur votre projet via un clic droit sur le projet et « Start Remote Debugger » :
 
Ainsi, dès que votre service va s’exécuter, le traitement s’arrêtera sur le premier point d’arrêt rencontré ..
Vous pourrez alors suivre pas à pas le déroulement des opérations et, au besoin, introspecter la mémoire pour connaître le contenu de l’objet binder par exemple …
 
En bref :

  • La ligne bleue indique là où on est arrêté
  • L’onglet « Data », à droite, indique toutes les variables en mémoire et leur contenu
  • L’onglet « Watch » permet d’isoler certaines variables sur lesquelles on souhaite avoir une information rapidement

J’espère que cet article vous sera utile !