这是错误日志:
[I 160308 11:09:59 web:1908] 200 GET / admin / realtime(117.93.180.216)107.13ms [E 160308 11:09:59 http1connection:54]未捕获异常Traceback(最近一次调用最后一次):文件“ /usr/local/lib/python3.4/dist-packages/tornado/http1connection.py“,第238行,在_read_message delegate.finish()文件中”/usr/local/lib/python3.4/dist-packages/tornado /httpserver.py“,第290行,在完成self.delegate.finish()文件”/usr/local/lib/python3.4/dist-packages/tornado/web.py“,第1984行,在完成self.execute ()文件“/usr/local/lib/python3.4/dist-packages/blueware-1.0.10/blueware/hooks/framework_tornado/web.py”,第480行,在_bw_wrapper__RequestDispatcher_execute future = wrapped(* args,) (文件)“/ usr / local / lib / python3.4 / dist-packages / blueware-1.0.10 / blueware / hooks / framework_tornado / web.py“,第448行,_bw_wrapper_RequestHandler___init___返回包装(* args, kwargs)文件”/ usr / local /lib/python3.4/dist-packages/tornado/web.py“,第185行,在init self.initialize(** kwargs)文件中”/usr/local/lib/python3.4/dist-packages/tornado/ web.py“,第2714行,在包装器self.redirect(url)文件”/usr/local/lib/python3.4/dist-packages/tornado/web.py“,第671行,重定向self.finish()文件“/usr/local/lib/python3.4/dist-packages/blueware-1.0.10/blueware/hooks/framework_tornado/web.py”,第309行,在_bw_wrapper_RequestHandler_finish_中返回包装(* args,** kwargs)文件“/usr/local/lib/python3.4/dist-packages/tornado/web.py”,第934行,在完成self.flush(include_footers = True)文件“/usr/local/lib/python3.4/dist -packages / tornado / web.py“,第870行,在flush中进行变换self._transforms:TypeError:'NoneType'对象不可迭代[I 160308 11:10:00 web:1908] 200 GET / admin / order? order_type = 1&order_status = 1&page = 0&action = allreal(49.89.27.173)134.53ms
谁能告诉我如何解决这个问题?非常感谢你
1 回答
我假设OneAPM(蓝色代理)与你的python和Tornado版本兼容,但它可能很棘手 .
解决方案
将
self.redirect(url)
从处理程序initialize
方法移动到get
方法,就像这样或使用RedirectHandler .
每个可以完成请求的操作都需要在http-verb方法(get,post,put等)的上下文中调用 . common mistake正在
__init__
或initialize
进行认证/授权 .更多细节
在Tornado的源代码中有一个关于
_transforms
的注释,它在构造函数中用None
初始化并设置在_execute
(过度简化 - 在headers_received之后) .重现
触发此错误的示例 . 我只是把它作为交叉检查,包括蓝色软件不是原因:
和堆栈跟踪: