Open WPS Platform

Comment debugger les services ZOO

Authors:Luca Delucchi
Last Updated:$Date: 2013-03-27 00:06:12 +0100 (Wed, 27 Mar 2013) $

Il ya différentes moyens de débugger vos services, les solutions les plus utilisées sont via le web ou via la ligne de commande.

Web

En utilisant la requête Web, vous pouvez voir n’importe quel problème dans le fichier de log d’Apache.

Sur les systèmes Unix, le fichier de log est habituellement dans /var/log/apache2 et le fichier correspondant est error_log. Une manière simple de lire le fichier est d’utiliser la commande tail, cela permet de voir la mise à jour du fichier pour chaque requête

tail -f /var/log/apache2/error_log

Si le log n’est pas assez clair, vous pouvez ajouter un peu plus d’informations de débuggage à votre code. Vous devez écrire dans la sortie d’erreur standard.

Python

En utilisant Python, vous pouvez par exemple faire ceci

import sys

#add this line when you want see an own message
sys.stderr.write("My message")

Javascript

Vous pouvez utiliser alert pour renvoyer un chaîne dans la sortie d’erreur standard:

// add this line when you want see an own message
alert('My message')
// you can debug value of inputs, outputs or conf
alert(inputs["S"]["value"])

Note

Si vous essayez de passer un objet, il ne retournera que [object Object]

Ligne de commande

Il est aussi possible d’utiliser le zoo_loader.cgi du Kernel ZOO depuis la ligne de commande. C’est très utile pour debugger de manière approfondie votre service:

# in order to use it you have to copy test_service.py and HelloPy.zcfg from
# the example services
./zoo_loader.cgi "service=wps&version=1.0.0&request=execute&identifier=HelloPy&datainputs=a=your name&responsedocument=Result"

En travaillant de cette façon, vous pouvez utiliser le système de débuggage standard du langage de programmation réelle utilisé pour développer votre service.

GDB

Depuis la ligne de commande, vous pouvez utiliser l’outil en ligne de commande GDB pour debugger zoo_loader.cgi, vous devez lancer:

# launch zoo_loader.cgi from gdb
gdb zoo_loader.cgi
# now run your request
run "service=wps&version=1.0.0&request=execute&identifier=HelloPy&datainputs=a=your name&responsedocument=Result"

A ce moment, vous pouvez demander de l’aide sur la liste de diffusion ZOO en copiant le résultat de la commande.

Python

Pour Python, vous pouvez utiliser pdb, plus d’informations sur http://docs.python.org/2/library/pdb.html

import pdb

# add this line when you want investigate your code in more detail
pdb.set_trace()

Javascript

Vous pouvez utiliser alert aussi pour faire un retour dans la console, plus d’informations dans la section web Javascript