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

« Pleade Déboguer une application pleade-libre » : différence entre les versions

De AJLSM
Aller à la navigation Aller à la recherche
Ctate (discussion | contributions)
 
(12 versions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Lors de l'utilisation de {{httpd}}, l'application est accessible par des URLs du type {{path|http://pleade-libre.dev/}}, tandis que par {{tomcat}}, elle sera accessible via {{path|http://localhost:8080/pleade-libre/}}.
Lors de l'utilisation de {{httpd}}, l'application est accessible par des URLs du type {{path|http://pleade-libre.dev/}}, tandis que par {{tomcat}}, elle sera accessible via {{path|http://localhost:8080/pleade-libre/}}.
== Suivre les routes ==
# éditer le fichier ''commons/xsl/pleade-aggregate.xsl'' et décommenter la partie DEBUG, ligne 270
# redémarrer tomcat
== Profiling / Suivre les routes v2 ==
[https://cocoon.apache.org/2.1/userdocs/concepts/profiler.html Doc Cocoon]
Intégration pleade:
# lancer le script profile.sh sur le ou les xmap des composants que l'on souhaite profiler. Ex: <pre>./profile.sh module-img-server/module-img-server.xmap</pre>
# Se logger dans l'application
# Naviguer dans le composant
# Consulter la page /profile.html
== Regarder les index ==
URL de la forme:
/functions/sdx-terms.xml?field=ffiltre&value=iconographie&field=fgenreform
== Passer l'héritage dans un cron ==
  &amp;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 ==
== Configurer Tomcat ==
Ligne 21 : Ligne 53 :
# On fini, en choississant {{value|pleade-libre}} dans la liste des applications à déboguer.
# On fini, en choississant {{value|pleade-libre}} dans la liste des applications à déboguer.
{{notice|Il faut que les sources Java et les fichiers {{path|JAR}}s soient dans le {{var|Classpath}} de chaque projet avant de pouvoir déboguer l'application}}
{{notice|Il faut que les sources Java et les fichiers {{path|JAR}}s soient dans le {{var|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 ==
== les choses qui sont agréables à savoir pendant le débogage ==
* Pour voir l'HttpServletRequest actuelle, créer un expression comme ça {{value|(javax.servlet.http.HttpServletRequest)objectModel.get(org.apache.cocoon.environment.http.HttpEnvironment.HTTP_REQUEST_OBJECT)}}
* Pour voir l'HttpServletRequest actuelle, créer un expression comme ça {{value|(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 {{value|((javax.servlet.http.HttpServletRequest)objectModel.get(org.apache.cocoon.environment.http.HttpEnvironment.HTTP_REQUEST_OBJECT)).getRequestURI()}}
* Si tu veut trouver le requestURI pendant le débogage, créer un expression comme ça {{value|((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 {{value|generator.source}}
* 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 {{value|generator.source}} ou comme ça {{value|((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.
* 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.
[[category:Eclipse]]
[[category:Eclipse]]

Dernière version du 20 octobre 2015 à 14:16

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

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


Profiling / Suivre les routes v2

[modifier | modifier le wikicode]

Doc Cocoon

Intégration pleade:

  1. lancer le script profile.sh sur le ou les xmap des composants que l'on souhaite profiler. Ex:
    ./profile.sh module-img-server/module-img-server.xmap
  2. Se logger dans l'application
  3. Naviguer dans le composant
  4. Consulter la page /profile.html

Regarder les index

[modifier | modifier le wikicode]

URL de la forme:

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

Passer l'héritage dans un cron

[modifier | modifier le wikicode]
 &inheritance-index=global

Afficher une stack trace Java

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

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.

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

[modifier | modifier le wikicode]
  • 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.