调试动物园服务¶
可以使用几种方法进行调试 动物园服务 .最常见的解决方案是Web或命令行。
网状物¶
使用HTTP WPS请求时,可以在Apache服务器日志文件中检查任何问题。
在UNIX上,日志文件通常位于 /var/log/apache2
相关的名字是 error_log .读取此文件的一个简单方法是使用 tail
命令,因为它允许查看每个请求的文件更新:
tail -f /var/log/apache2/error_log
如果日志不够清晰,您仍然可以向源代码中添加更多调试信息,并写入标准错误。
Python¶
例如,使用python可以执行以下操作:
import sys
#add this line when you want see an own message
sys.stderr.write("My message")
JavaScript¶
使用javascript,您可以使用 alert
要将字符串打印为标准错误,例如:
// add this line when you want to see own message
alert('My message')
// you can debug value of inputs, outputs or conf
alert(inputs["S"]["value"])
备注
如果你试图传递一个对象,它只会返回 [object Object]
命令行¶
动物园内核 ( zoo_loader.cgi )也可以从命令行使用。这对于更深入地调试服务非常有用,例如:。
# 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"
通过这种方式,您可以使用实际编程语言的标准调试系统来开发您的服务。
如果您应该模拟post请求,可以使用以下命令告诉zoo内核使用该文件 /tmp/req.xml
作为输入XML请求:
# Define required environment settings
export REQUEST_METHOD=POST
export CONTENT_TYPE=text/xml
# Run the request stored in a file
./zoo_loader.cgi < /tmp/req.xml
GDB¶
在命令行中,还可以使用命令行工具 GDB 调试 zoo_loader.cgi
,您必须运行:
# 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"
备注
在从gdb运行时,可以使用之前使用的相同参数来模拟POST请求。
如果没有任何帮助,您可以在 ZOO mailing list 正在复制命令的结果。
Python¶
对于python,可以使用 pdb
,更多信息请访问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¶
你可以使用 alert
另外,要在控制台中打印,请在 JavaScript Web分区