Debug Flex ET Java

  • warning: array_map(): Argument #2 should be an array in /var/www/titouille.ch/www/modules/system/system.module on line 1050.
  • warning: array_keys() expects parameter 1 to be array, null given in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
  • warning: Invalid argument supplied for foreach() in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
Portrait de titouille

Comment débuguer ses applications LCDS de manière correcte... Telle est la question que je me suis posée après être tombé sur un problème étrange.

J'avais beau commiter mes données de Flex vers Java pour prendre en compte les modifications dans la base de données, rien n'y faisait, le serveur ne recevait aucune requête de Flex.

Après avoir fait quelques recherches, je suis tombé sur ce thread expliquant comment débuguer ses applications de manière complète. Il est possible d'exécuter son application serveur en mode debug, d'exécuter son application Flex en mode debug, et de poser des points d'arrêts, que ça soit dans la partie Flex ou dans la partie Java, afin de suivre le déroulement des processus.

Sans rentrer dans les détails, le thread de James Ward le faisant très bien, je voulais simplement lister les jar nécessaires à ce mode debug côté serveur.

Tout d'abord, dans mon projet actuel, nous utilisons JUnit pour faire des tests unitaires côté Java. Le problème se pose lorsqu'on tente d'exécuter des tests unitaires qui doivent prendre en compte des processus Hibernate tel que le ferait Flex.

Pour exécuter les tests unitaires de manière correcte, voici la liste des jar que j'ai inclus à mon projet :

  • antlr-2.7.5H3.jar
  • backport-util-concurrent-2.2.jar
  • cglib-nodep-2.1_3.jar
  • commons-collections-2.1.1.jar
  • commons-logging.jar
  • dom4j-1.6.1.jar
  • ehcache-1.4.1.jar
  • flex-messaging.jar
  • flex-messaging-common.jar
  • hibernate3.jar
  • jta-spec1_0_1.jar
  • mysql-connector-java-5.0.8-bin.jar

La plupart de ces jars ce trouvent dans l'installation de lcds : lcds\jrun4\servers\default\flex\WEB-INF\lib

Les autres ont été trouvé sur le net en faisant des recherches sur google par exemple.

J'ai également rajouté la librairie intégrée JUnit 3, bien entendu.

Maintenant, on en arrive au sujet. Pour exécuter le serveur en mode debug, il est nécessaire tout d'abord d'ajouter 2 jars :

  • flex-messaging-req.jar, situé au même endroit que la première liste de jars que j'ai soumises avant.
  • flex-services.jar, qu'on peut trouver dans le répertoire lcds\jrun4\servers\lib/li>

Toutes ces librairies peuvent être incluses dans un répertoire "lib" directement dans le répertoire du projet, afin de ne pas avoir de références externes.

Par contre, le dernier jar à inclure nécessite d'être lié de manière externe : jrun.jar se situe dans le répertoire lcds\jrun4\lib, et il doit obligatoirement y rester, car il utilise le fichier servers.xml qui s'y trouve également.

Une fois ces différents fichiers ajouté au projet, il est possible de travailler avec des tests unitaires, et de débuguer de la manière la plus complète possible son application Wink