2016-12-10 4 views
0

私はweb.pyを使用して2つのサーバーを実行し、1つのサーバーから別のサーバーにコールを開始しようとしています。両方のサーバーは正常に起動しますが、URLを呼び出そうとすると、次のスタックトレースがスローされます。web.pyでリクエストを開始できません

import web 

urls = (
    '/ping', 'Ping', 
    '/acqlock/+(.*)', 'Acquire', 
) 

class MSA(web.application): 
    def run(self, port=8081, *middleware): 
     func = self.wsgifunc(*middleware) 
     return web.httpserver.runsimple(func, ('127.0.0.1', port)) 

app = MSA(urls, globals()) 
if __name__ == "__main__": 
    app.run(port=8081) 

class Acquire: 
    def GET(self, resource_name): 
     print resource_name 
     response = app.request('http://127.0.0.1:8080/acqlock/' + resource_name, method='GET') 
     return response 

ただし、/ acqlockを呼び出した後もこのエラーが発生します。

Traceback (most recent call last): 
    File "C:\Python27\lib\site-packages\web\wsgiserver\__init__.py", line 1245, in communicate 
    req.respond() 
    File "C:\Python27\lib\site-packages\web\wsgiserver\__init__.py", line 775, in respond 
    self.server.gateway(self).respond() 
    File "C:\Python27\lib\site-packages\web\wsgiserver\__init__.py", line 2018, in respond 
    response = self.req.server.wsgi_app(self.env, self.start_response) 
    File "C:\Python27\lib\site-packages\web\httpserver.py", line 306, in __call__ 
    return self.app(environ, xstart_response) 
    File "C:\Python27\lib\site-packages\web\httpserver.py", line 274, in __call__ 
    return self.app(environ, start_response) 
    File "C:\Python27\lib\site-packages\web\application.py", line 279, in wsgi 
    result = self.handle_with_processors() 
    File "C:\Python27\lib\site-packages\web\application.py", line 249, in handle_with_processors 
    return process(self.processors) 
    File "C:\Python27\lib\site-packages\web\application.py", line 246, in process 
    raise self.internalerror() 
    File "C:\Python27\lib\site-packages\web\application.py", line 515, in internalerror 
    parent = self.get_parent_app() 
    File "C:\Python27\lib\site-packages\web\application.py", line 500, in get_parent_app 
    if self in web.ctx.app_stack: 
AttributeError: 'ThreadedDict' object has no attribute 'app_stack' 

答えて

0

リクエストライブラリを使用します。

import requests 
    response = requests.request(method='GET', url ='http://127.0.0.1:8080/acqlock/' + resource_name) 

注:あなたは8081

にweb.pyを主催しているにもかかわらず、URLにポート8080を使用していました
関連する問題