Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

Pleade Déboguer une application pleade-libre

De AJLSM
Aller à la navigation Aller à la recherche

Lors de l'utilisation de Apache HTTPd, l'application est accessible par des URLs du type http://pleade-libre.dev/, tandis que par Apache Tomcat, elle sera accessible via http://localhost:8080/pleade-libre/.

Suivre les routes

  1. éditer le fichier commons/xsl/pleade-aggregate.xsl et décommenter la partie DEBUG, ligne 270
  2. redémarrer tomcat


Regarder les index

URL de la forme:

/functions/sdx-terms.xml?field=ffiltre&value=iconographie&field=fgenreform

Passer l'héritage dans un cron

 &inheritance-index=global

Afficher une stack trace Java

Aussi simple que:

Thread.dumpStack()

Cf http://stackoverflow.com/questions/944991/is-there-a-way-to-dump-a-stack-trace-without-throwing-an-exception-in-java

Configurer Tomcat

Pour rajouter le débogueur au serveur Apache Tomcat, on modifiera le fichier $HOME/.ajlsmrc pour rajouter dans la fonction flushAndRestart les lignes suivantes, avant la commande de démarrage (catalina.sh start):

set JPDA_ADDRESS=8000
set JPDA_TRANSPORT=dt_socket

Ensuite on modifiera la ligne de démarrage pour rajouter le paramètre jpda à la commande :

sh "$tomcatDir/bin/"catalina.sh jpda start

Configurer Eclipse

Dans Eclipse, on configurera de la manière suivante :

  1. Clic droit sur le projet (pleade-libre ou pleade-entreprise), Debug As -> Debug Configurations... ;
  2. Double-clic sur « Remote Java Application », et on configure :
    • Host : localhost ;
    • Port : 8000.
  3. Dans l'onglet « Source » on ajoutera les projets :
    • pleade-libre ;
    • sdx-ajlsm.
  4. On fini, en choississant pleade-libre dans la liste des applications à déboguer.
Notice :
Il faut que les sources Java et les fichiers JARs soient dans le Classpath de chaque projet avant de pouvoir déboguer l'application.

En CLI

Tout se résume à cette commande

rlwrap -f . -f tags -e "" jdb -attach localhost:PORT

les choses qui sont agréables à savoir pendant le débogage

  • Pour voir l'HttpServletRequest actuelle, créer un expression comme ça (javax.servlet.http.HttpServletRequest)objectModel.get(org.apache.cocoon.environment.http.HttpEnvironment.HTTP_REQUEST_OBJECT)
  • Si tu veut trouver le requestURI pendant le débogage, créer un expression comme ça ((javax.servlet.http.HttpServletRequest)objectModel.get(org.apache.cocoon.environment.http.HttpEnvironment.HTTP_REQUEST_OBJECT)).getRequestURI()
  • Si vous souhaitez savoir quels XSP est sur ​​le point d'être analysé, mets un breakpoint dans ServerPagesGenerator.java dans cocoon source, ligne 228, et mets un breakpoint avec un expression comme ça generator.source ou comme ça ((javax.servlet.http.HttpServletRequest)objectModel.get(org.apache.cocoon.environment.http.HttpEnvironment.HTTP_REQUEST_OBJECT)).getRequestURI() + "?" + org.apache.commons.lang.StringUtils.trim(((javax.servlet.http.HttpServletRequest)objectModel.get(org.apache.cocoon.environment.http.HttpEnvironment.HTTP_REQUEST_OBJECT)).getQueryString()) + "\\n XSP: " + generator.source
  • Si vous avez un erreur qui dit «Resource not found.» dans les logs de cocoon avec un fichier .xmap, Mettre un breakpoint sur le ligne 454 de SourceUtil.java dans les sources de cocoon pour voir le vrais problem.