调试动物园服务

可以使用几种方法进行调试 动物园服务 .最常见的解决方案是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分区