1

remote_apiIDEを介して行ごとのデバッグを実行できるようにGoogleAppEngineを使用しようとしています。

リモートAPIは最初はうまく機能します。アプリケーションは、データベースから情報を正常に取得できます。このエラーは、wepappがクライアントブラウザに応答するときに発生します。

コード:

これは、AppEngineのドキュメントに記載されている例と非常によく似ています。

from model import My_Entity
from google.appengine.ext.remote_api import remote_api_stub

# Test database calls
def get(w_self):
    remote_api_stub.ConfigureRemoteApi(None, '/_ah/remote_api', auth_func, 'myapp.appspot.com')

    t_entity = My_Entity.get_by_key_name('the_key')

    w_self.response.set_status(200)

    # The error occurs AFTER this code executes, when webapp actually responds to the browser

エラートレースバック:

エラーはblobstoreに関連しているようです。

リモートAPIがコードに初期化されるのが遅すぎませんか?

... webappがローカルホストサーバーを介してblobstoreで何かを行った後?次に、リモートAPIは、webappが期待しているlocalhostデバッグサーバーではなく、サーバー内のblobstoreにリクエストをリダイレクトしている可能性がありますか?

トレースバック(最後の最後の呼び出し):
  ファイル"C:\ Program Files(x86)\ Google \ google_appengine \ google \ appengine \ tools \ dev_appserver.py"、2795行目、_HandleRequest
    login_url)
  CreateImplicitMatcherのファイル"C:\ Program Files(x86)\ Google \ google_appengine \ google \ appengine \ tools \ dev_appserver.py"、行3622
    get_blob_storage)
  CreateUploadDispatcherのファイル「C:\ ProgramFiles(x86)\ Google \ google_appengine \ google \ appengine \ tools \ dev_appserver_blobstore.py」、行420
    UploadDispatcher()を返します
  ファイル"C:\ Program Files(x86)\ Google \ google_appengine \ google \ appengine \ tools \ dev_appserver_blobstore.py"、307行目、__ init__
    get_blob_storage())
  GetBlobStorageのファイル「C:\ ProgramFiles(x86)\ Google \ google_appengine \ google \ appengine \ tools \ dev_appserver_blobstore.py」、79行目
    apiproxy_stub_map.apiproxy.GetStub('blobstore')。storageを返します
AttributeError:'RemoteStub'オブジェクトに属性'storage'がありません

リモートAPIは、コード内の別の場所で初期化する必要がありますか?

それとも、この問題は他の何かと関係がありますか?

本当にありがとう!

4

1 に答える 1

0

これを機能させるには、テストベッドのヘルプを使用して、欠落しているスタブを開始できます。

ADDRESS=....
remote_api_stub.ConfigureRemoteApi(None, '/_ah/remote_api', auth_func, ADDRESS)

# First, create an instance of the Testbed class.
myTestBed = testbed.Testbed()

# Then activate the testbed, which prepares the service stubs for use.
myTestBed.activate()

# Next, declare which service stubs you want to use.
myTestBed.init_blobstore_stub()
myTestBed.init_logservice_stub()
于 2013-07-22T12:44:34.677 に答える